System and method for manipulating and displaying data

ABSTRACT

The various implementations of the present invention are provided as a computer-based system for manipulating and displaying data. The system can be deployed as a keyword research tool configured pull keywords into the system from a variety of sources such as through various application programming interfaces (“API”), allow the user to copy and paste, import via a file format such as CSV, etc. or enter seed keywords that our system uses to find related keyword phrases from an internal database or external database via an application programming interface (“API”). In the most preferred embodiments of the present invention, each keyword also comprises a plurality of associated metrics such as search volume, cost per click, competition level, etc. and can be utilized in a variety of areas where grouping hierarchical information is required.

RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 14/833,024, which application was filed on Aug. 21, 2015. U.S.patent application Ser. No. 14/833,024 is a continuation-in-part of U.S.patent application Ser. No. 14/644,196, which application was filed onMar. 10, 2015 and which application is incorporated herein by reference.U.S. patent application Ser. No. 14/644,196 claims the benefit of U.S.Provisional Patent Application Ser. No. 61/950,688, which applicationwas filed on Mar. 10, 2014 and which application is incorporated hereinby reference.

BACKGROUND OF THE INVENTION 1. Technical Field

The present invention relates generally to the field of computerizedsearching and more specifically relates to systems and methods formanipulating and displaying data in a user-configurable fashion.

2. Background Art

With the widespread adoption and availability of the Internet, theInternet has become a valuable tool for research, shopping,entertainment, and other activities. Since the Internet now comprisesbillions of pages of information, it has become increasing difficult toquickly and efficiently search for and locate the desired information.To facilitate access to the information on the Internet, search engineshave been developed to sort and display information to users. MostInternet search engines use proprietary algorithms to score and “rank”web pages for presentation to users with the most relevant web pagesbeing ranked “higher” and being presented first. Since most users won'tlook beyond the first few pages of results for any given search, it isvery important to design web pages that will rank high in the searchengine results. Many Internet search engines use some form of keyword orkey phrase and linking schema to provide targeted search results thatare responsive to a user's search request.

Search engine optimization (“SEO”) is the process of affecting thevisibility of a website or a web page in a search engine's “natural” orun-paid (“organic”) search results. In general, the earlier (or higherranked on the search results page), and more frequently a site appearsin the search results list, the more visitors it will receive from thesearch engine's users. SEO strategy may include targeting differentkinds of search, including image search, local search, video search,academic search, news search and industry-specific vertical searchengines.

As an Internet marketing strategy, SEO also considers how search engineswork, what people search for, the actual search terms or keywords typedinto search engines and which search engines are preferred by theirtargeted audience. Optimizing a website for SEO purposes may involveidentifying relevant keywords and phrases, editing website content toinclude relevant keywords and phrases, modifying the hypertext markuplanguage (“HTML”) used to create the webpages at the website so as toinclude relevant keywords and phrases, and the associated coding to bothincrease its relevance to specific keywords and to remove barriers tothe indexing activities of search engines.

To assist in identifying and analyzing relevant keywords and phrases,Internet marketing and SEO professionals will frequently use variouskeyword research tools. A keyword research tool is a software programthat takes a starting or “seed” keyword or phrase (e.g., “cheap carinsurance”) and, using the seed, returns a list of related keywords andphrases. In general, the results are generally retrieved from a datasource specifically developed for this purpose. In many cases, eachreturned keyword or phrase will also have metrics such as search volume,cost per click, competition level, etc. This information helps the userdetermine which keywords they want to target for inclusion in searchengines searches. These tools generally offer a method for the person toselect the words of interest and place them on a shortlist or to removekeywords from consideration if they are not of interest for a specificapplication.

SEO professionals will often spend a significant amount of time ensuringthat their webpages are optimized for the most relevant keywords used insearches so that targeted traffic will be sent to the desired websitepages. Entire websites may be designed for specific keyword and phrases,anticipating exactly what keywords and phrases will be used to searchfor the products or services advertised at the target website. Also,Internet marketers optimize informational webpages on a site with theintention of earning the visitors business at a later time or bygenerating revenue from advertising. While SEO optimization can increasethe probability of higher search engine rankings, there are limits tothe effectiveness of the processes and procedures used to identify thebest keywords and phrases that will drive traffic to the website.

For example, many people search the Internet for “auto insurance” whenthey really are looking for “car insurance” as opposed to “truckinsurance” or “motorcycle insurance.” An Internet marketing professionalwould likely want to consider the keywords “auto” and “car” asequivalent. It is common to set synonym equivalencies by manuallyentering them into the system and letting the algorithm utilize thisdata. But even in this case there are situations where this will beunlikely to provide the desired results. A pre-configured search phrasesuch as “auto insurance for two wheel vehicles” may logically beassociated with the “motorcycle insurance” category and produce searchresults targeted towards motorcycle insurance, even though in practice aperson may be searching for “moped insurance.” Another potentiallimitation of keyword grouping theory is the possible desire to includean item in a group although it does not hierarchically fit in thatgroup. For example, a search engine marketer may designate a page totarget “car insurance” but a search engine such as Google® not onlyranks that page for car insurance related terms but may also rank itvery high for “truck insurance deals” even though there is alreadyanother page dedicated to “truck insurance” which is not ranking highlyfor this keyword. The Internet marketer may want to manually assign thekeyword to the page that it is currently highly ranking on. Of coursethose skilled in the art will recognize that the algorithm could bemodified to account for this type of variation but there will always besome cases where an algorithm can't account for so manual adjustmentwill almost always be a functional requirement.

The same is true for groups and not just items. A user may have a reasonfor manually combining groups that the algorithm did not put together.For example, the algorithm may create two separate groups such as “carinsurance for women” and “ladies car insurance.” Manually combiningthese groups makes sense if the algorithm was not designed toautomatically due so.

Since grouping information such as keywords often involves working withlarge numbers of items at a time (as many as several thousand) allowingthe user to quickly and easily manipulate this data is important topromote maximum productivity. Many current tools have cumbersome methodsfor manually overriding defaults such as requiring the user to click acheckbox next to the item in question, click a menu to select an action,and then click a button to execute that action. Doing this dozens orhundreds of times makes the work burdensome. Many tools that groupkeywords put the keywords into individual folders making it impossibleto view all of the keywords in one grouped list. Most commonly keywordresearch tools display the results in a single ungrouped list making theprocess of deciphering and using the results in the decision-makingprocess less than intuitive.

These, and other similar limitations, make the process of identifyingand selecting the best keywords to drive Internet traffic less efficientand effective than it might be. Accordingly, without improvements in thecurrent systems, procedures, and methods for working with search enginetools, the ability to effectively and efficiently ensure that Internetmarketers and SEO professionals are able to retrieve and displayimportant information such as keywords and phrases will continue to besub-optimal.

BRIEF SUMMARY OF THE INVENTION

The various implementations of the present invention are provided as acomputer-based system for manipulating and displaying data. The systemcan be deployed as a keyword research tool configured to take importedkeywords from a variety of internal, external and client provide sourcesas well as allowing the user to enter seed keyword phrases (e.g., “cheapcar insurance”) and create a list of related keyword phrases from aninternal database or external database via an application programminginterface (“API”). Keywords from all sources are combined into a singlelist with no duplicate keywords. The keywords are most preferablydisplayed to the user in a single list with grouping symbols (calledgrouping blocks) to the side of the keywords. The most useful form ofgrouping block is in the shape of an “inverted L”, referred to as an“L-block”, to provide maximum utility. In the most preferred embodimentsof the present invention, each keyword also comprises a plurality ofassociated metrics such as search volume, cost per click, competitionlevel, etc.

Some of the most salient features of the present invention include:

-   -   Automatic grouping into mutually exclusive and hierarchical        groupings    -   Visual keyword groupings presented to the user in a graphical        user interface with “grouping blocks” of various shapes        including rectangular as well as those that look like an        inverted “L.”    -   Grouping blocks contain tools (via icons or context menu) that        provide functionality to the block that allows the user to        perform functions on the data in or related to each group.    -   Tools to operate on grouping blocks individually or in        combination.    -   Ability to change the view of a grouping block.    -   Ability to control which blocks display to the user at any one        time.    -   Manual override of automatic groupings with a drag and drop        functionality implemented in the graphical user interface.        Groupings can be manually combined by dragging and dropping a        grouping onto another. For example, a “motorcycle insurance”        keyword group could be dragged onto a “truck insurance” group to        form a “motorcycle/truck” insurance group if such a need arised.        Additionally, individual keywords can be moved to different        groups via drag and drop functionality.    -   Manual addition and deletion of individual keywords.    -   Manual addition and deletion of keywords in bulk.    -   Manual tagging of groups to indicate the user's interest or        state in their process in each group. For example, users can tag        a group to add it to a “short list” of terms they are        considering targeting. Using “color tagging”    -   Ability to view groups based on tagged state.    -   Different types of grouping blocks: Semantic and category. For        semantic blocks the hierarchical relationship they display is        based on the relationship of the words in their defining terms        which is directly related to the individual words in each        keyword phrase. For example “car insurance quotes” is in a        semantic subgroup of “car insurance” because of the relationship        of the words in the phrase itself. Category based blocks where        the subblocks of a particular block are based on categorical        relationship. For example, a subgroup “slip and fall” is a        subcategory of “personal injury.” Another example is “Greenwich”        is a subcategory of “Connecticut” since it is a town in        Connecticut.    -   Drag & drop functionality of grouping block. To combine blocks        or move blocks.

Some of the other unique features of the present invention include:

-   -   Grouping blocks display summary information about the group.        Example, total search volume for the keywords in the group.        There are two varieties of this summary data: regarding an        individual group and regarding all groups within the scope of a        grouping block.    -   Grouping blocks display the word or phrase that defines the        grouping.    -   Ability to manually modify the automatically generated hierarchy        order.        Example change Car>insurance>cheap>teen to        Car>insurance>teen>cheap

Some additional features of the graphical user interface for the presentinvention include:

-   -   Equivalent terms input box—A graphical user element that allows        the user to indicate synonyms to be used by the grouping        algorithm when determining which group to put a keyword in.        Example the command [“car”=“auto”=“automobile”] would cause the        algorithm to treat each of these three words as equivalent words        and the grouping algorithm would treat them as if they were the        same word.    -   Required terms input box—A graphical user element that allows        the user to indicate words that must appear in each keyword        phrase in the list returned by the algorithm. Example, if the        term “insurance” were included in the required terms input box,        it would ensure that all keyword phrases displayed to the user        included this word.    -   Negative terms input box—A graphical user element that allows        the user to eliminate keyword phrases from the initially        presented list that contain one of the indicated words. For        example, including the word “truck” in the negative terms input        box would ensure that no keyword phrase such as “truck        insurance” would appear in the list generated by the algorithm        and these phrases would be excluded from the display.        -   Collapsible grouping blocks—Clicking on a small arrow or            other icon (e.g., “+” or “−” sign, etc.) will alternatively            collapse or expand the group to allow the user to show root            page's keywords only.        -   Tagging system to allow the user indicate their level of            interest in a particular group to aid in the process of            narrowing the list of keywords.            Some additional functionality of the present invention that            aid in its utility:    -   Integration with external data sources such as those that        provide keywords or keyword related data, webpage data, etc.    -   Providing multiple methods for the user to add keywords to a        project.    -   A visual counter that displays how many keywords are in the        project, how many groups are in the project, how many keywords        are visually displayed to the user and how many groups are        visually displayed to the user.    -   Ability to display webpage level data such as the number of        visitors to a page so that that number is clearly associated        with the group of keywords assigned to the page.    -   Ability to control how much data is pulled into the project from        various sources to help the user control project size or manage        data related to their available data usage limits.    -   Processing seed keywords through a synonym finder that        identifies exact synonyms such that they represent the exact        same object or idea in reality. Commonly referred to as entities        in programmer parlance.

BRIEF DESCRIPTION OF THE FIGURES

The preferred embodiments of the present invention will hereinafter bedescribed in conjunction with the appended drawings, wherein likedesignations denote like elements, and:

FIG. 1 is a schematic diagram of a computer-based system formanipulating and displaying data in accordance with a preferredexemplary embodiment of the present invention;

FIG. 2 is a block diagram of a server (computer) used for acomputer-based system for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention;

FIG. 3 is a schematic diagram illustrating a user interface element formanipulating and displaying data in accordance with a preferredexemplary embodiment of the present invention;

FIG. 4 is a flow chart of a method of manipulating and displaying datain accordance with a preferred exemplary embodiment of the presentinvention;

FIG. 5 is provided to illustrate the location of the hierarchycontroller user interface element illustrated in FIG. 3 in the contextof the entire user interface;

FIG. 6 is an alternate version of a hierarchy controller user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention;

FIG. 7 is another alternate version of a hierarchy controller userinterface element for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention;

FIG. 8 is a schematic representation of grouping blocks and theirassociated data that displays available UI controls within the groupingblock via a user interface element for manipulating and displaying datain accordance with a preferred exemplary embodiment of the presentinvention—this diagram illustrates a grouping block and typical data anduser controls;

FIG. 9 is a schematic representation of grouping blocks and shows UIcontrols for entering seed keywords for the group (“page level”) orlarger block level (including subgroups) (“group level”).

FIG. 10 is a schematic representation of grouping blocks and UI controlsfor a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention—this diagram illustrates functionality available for anindividual item row;

FIG. 11 is a schematic representation of grouping blocks and UI controlsfor a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention—this diagram illustrates functionality for inserting an iteminto a page group manually;

FIG. 12 is a schematic representation of toolbar containing UI controlsfor a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention;

FIG. 13 is a flow chart of a method for manipulating and displaying datain accordance with a preferred exemplary embodiment of the presentinvention;

FIG. 14 is a schematic representation of grouping blocks and UI controlsfor a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention—illustrates data columns which display website specific data;

FIG. 15 is a schematic representation of grouping blocks and UI controlsfor a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention—illustrates the main data grid including aggregate data row atthe bottom of each group's data columns.

FIG. 16 is a schematic representation of a data grid illustrating thecolumn controls available at the group (page) level used in conjunctionwith a user interface element for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention;

FIG. 17 is a schematic representation of the data grid illustrating thecolumns for on-page optimization score and item (keyword) sources usedin conjunction with a user interface element for manipulating anddisplaying data in accordance with a preferred exemplary embodiment ofthe present invention;

FIG. 18 is an alternative version of the main data grid schematicrepresentation of grouping blocks and UI controls for a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention;

FIG. 19 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the before state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg in a parent/child block relationship;

FIG. 20 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the after state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg in a parent/child block relationship;

FIG. 21 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the before state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg in a parent/child block relationship. This is the same action shownin FIG. 19 but is presented here to illustrate the effect on subblocksin FIG. 22;

FIG. 22 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the after state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg in a parent/child block relationship. This is the same result shownin FIG. 20 but this diagram illustrates the effect on subblocks;

FIG. 23 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the before state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg for two peer level grouping blocks;

FIG. 24 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the after state of the user action of clicking and dragginga grouping block's horizontal leg to another grouping block's horizontalleg for two peer level grouping blocks;

FIG. 25 is the same as FIG. 24 but highlights the effect on the groupingblock's summary data.

FIG. 26 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thatsubpage blocks can be recombined with vertical leg grouping blocks;

FIG. 27 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the before state of the user action of clicking and dragginga grouping block's vertical leg to another grouping block's horizontalleg in a parent/child grouping block relationship;

FIG. 28 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the after state of the user action of clicking and dragginga grouping block's vertical leg to another grouping block's horizontalleg in a parent/child grouping block relationship;

FIG. 29 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the before state of the user action of clicking and dragginga grouping block's upper left corner to another grouping block's upperleft corner in a peer grouping block relationship;

FIG. 30 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—diagramillustrates the after state of the user action of clicking and dragginga grouping block's upper left corner to another grouping block's upperleft corner in a peer grouping block relationship;

FIG. 31 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thesubpage grouping block used for manually moved items (such as keywords);

FIG. 32 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustratesmultiple subpage blocks in a single page's horizontal leg;

FIG. 33 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustratesmultiple nested subpage blocks;

FIG. 34 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates the“grabbable” areas in different shaped grouping blocks used during dragand drop operations. Includes diagrams for inverted-L, vertical andhorizontal only grouping blocks;

FIG. 35 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state for the combination of two groups using drag and drop wherethe groups are at different levels in the hierarchy;

FIG. 36 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state for the combination of two groups using drag and drop wherethe groups are at different levels in the hierarchy;

FIG. 37 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theUI controller for changing the “view” of the data based on “colortagging” of groups and keywords;

FIG. 38 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state for the combination of two “horizontal only” groupingblocks at the same level of the hierarchy;

FIG. 39 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state for the combination of two “horizontal only” grouping blocksat the same level of the hierarchy;

FIG. 40 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustratescategory based grouping blocks in the context of geographic grouping;

FIG. 41 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thelocation of the mechanism for manually creating a grouping block in anexisting hierarchy on the left side of a grouping block. Alsoillustrates the before state of the blocks where a user is inserting amanually inserted category block;

FIG. 42 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustratesmechanism for manually creating a grouping block in an existinghierarchy on the left side of a grouping block that allows the user toenter a defining term. Also, illustrates the before state of the blockswhere a user is inserting a manually inserted category block;

FIG. 43 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state of the blocks where a user inserted manually category block;

FIG. 44 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state of the blocks where a user previously inserted a manualcategory block and then manually dragged another group into the manuallycreated category block;

FIG. 45 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state where a vertical only block has a horizontal block manuallyadded to it;

FIG. 46 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state where a vertical only block has a horizontal block manuallyadded to it;

FIG. 47 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustratesblocks all at the same level of the hierarchy that are collapsed (i.e.if they have a vertical leg the vertical leg and all of its subgroupsare hidden);

FIG. 48 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thegrouping block functionality that provides for constraining the heightof all horizontal legs and their associated rows to display at most twoitems;

FIG. 49 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state where a grouping block is moved outside of its immediateparent's scope and indicates where the block is clicked and dragged anddropped to;

FIG. 50 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state where a grouping block is moved outside of its immediateparent's scope. It illustrated the additional grouping block that mustbe created to accommodate such a change;

FIG. 51 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state of the grouping blocks where the order of the hierarchy ischanged by dragging an L-block but not its subgroups to a higherposition in the hierarchy;

FIG. 52 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state of the grouping blocks where the order of the hierarchy ischanged by dragging an L-block but not its subgroups to a higherposition in the hierarchy;

FIG. 53 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state when moving a horizontal only block to a hierarchicallyequivalent location among its peer blocks;

FIG. 54 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state when moving a horizontal only block to a hierarchicallyequivalent location among its peer blocks;

FIG. 55 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates thebefore state when moving an L-block to a hierarchically equivalentlocation among its peer blocks;

FIG. 56 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theafter state when moving an L-block to a hierarchically equivalentlocation among its peer blocks;

FIG. 57 is a flowchart depicting an idealized workflow for keywordresearch using the present invention;

FIG. 58 is a flowchart depicting a real world workflow for keywordresearch using the present invention;

FIG. 59 is an example of the use of grouping blocks to group conceptsrelating to household goods to illustrate the use of grouping blocksoutside the area of keyword research;

FIG. 60 is an example of the use of grouping blocks to group conceptsrelating to the scientific field of arachnology to illustrate the use ofgrouping blocks outside the area of keyword research;

FIG. 61 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention—illustrates theuse of grouping blocks to group tasks in a process relating to the fieldof Internet marketing to illustrate the use of grouping blocks outsidethe area of keyword research;

FIG. 62 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention illustrates theclick and drop zones on the “L-block” grouping block type used for dragand drop operations, to click to display contextual menus or performother operations on the block;

FIG. 63 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention illustrates theclick and drop zones on the “horizontal only” grouping block type usedfor drag and drop operations, to click to display contextual menus orperform other operations on the block;

FIG. 64 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention illustrates theclick and drop zones on the “vertical only” grouping block type used fordrag and drop operations, to click to display contextual menus orperform other operations on the block;

FIG. 65 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention.

FIG. 66 is a schematic representation illustrating a user interfaceelement for manipulating and displaying data in accordance with apreferred exemplary embodiment of the present invention.

FIG. 67 is a flow chart illustrating a method for manipulating anddisplaying data in accordance with a preferred exemplary embodiment ofthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

The various implementations of the present invention are provided as acomputer-based system for manipulating and displaying data. The systemcan be deployed as a keyword research tool configured to pull togetherkeywords from a plurality of sources including but not limited to importdirectly from APIs of data service providers such as SEMRush®, Google®Analytics, Google® Webmaster Tools, and any other data source that canbe integrated via API or similar technology, manually imported using CSVfile format, copy and pasted into a form in the tool or take seedkeywords (e.g., “insurance”, “cheap car insurance”) and create a list ofrelated keywords from an internal database or external database via anapplication programming interface (“API”). (For purposes of thisdisclosure, “keyword” and “keyword phrase” are considered to besynonymous and may be used interchangeably.) The resulting keywords aremost preferably displayed to the user via a graphical user interface ingroups. Each keyword group contains the most relevant keywords foroptimizing a webpage for SEO purposes, making application of thekeywords to the webpage a straight forward proposition. The keywordgroups are most preferably arranged using one or more “grouping blocks”,that are shaped as vertical or horizontal rectangles or as thecombination of a vertical and horizontal rectangle in the shape of an“inverted L,” that can be used to display the hierarchical relationshipbetween the keyword groups.

In the most preferred embodiments of the present invention, each keywordalso is associated with a plurality of related metrics such as thenumber of searches performed in search engines for individual keywords(search volume), the cost per click typically paid by search marketingadvertisers (CPC), difficulty to rank in organic search for the keyword(competition level), etc. This information helps the user determinewhich keywords they want to target in search engines. Additionally, theuser can display columns to associate each group with a URL on thewebsite in question or the traffic received to that page over aspecified period of time or the strength of that page as compared to thelevel of competition.

Relevant words and phrases related to the target keywords may beobtained from third party keyword suggestion sources (e.g., Grepwords®,Semrush®, Wordstream®, etc.) or may be generated using other tools andtechniques known to those skilled in the art. Once the relevant wordsand phrases have been obtained, the user interface provides a series oftools that allow the user to manipulate and adjust the grouping of thekeywords so as to maximize the set(s) of keywords that should be appliedto a given website for Internet marketing, SEO and PPC (pay-per-click)purposes.

As previously mentioned, the most preferred embodiments of the presentinvention comprise one or more rectangles many shaped like an inverted“L-shaped” grouping blocks for visualization purposes. This uniqueconfiguration keeps the keywords in a single left-aligned list whilevisually illustrating the hierarchical relationship between the keywordgroups. Additionally, the fact that the blocks have “width”, unlikelines, allows for unique user interactivity and functionality.

Grouping blocks can be nested and maintain all of their other propertiessuch as keeping keywords left aligned in a single list.

Grouping blocks have unique properties unlike standard user interfacecontrollers such as tree controllers, tree diagrams (org charts) orcluster diagrams.

Grouping blocks are unlike a standard tree controller whichprogressively indents each sub item to illustrate the hierarchicalrelationship between the items. While this approach is useful, we foundthat the keywords would no longer be visually perceived as a single listbut perceived as disjointed groups. Also this configuration would makeit difficult to display metrics associated with each keywords.

Grouping blocks are unlike tree diagrams or org chart diagrams thatcould also display the required relationships between keywords. Treediagrams are generally considered to be unsatisfactory because they: 1)require a lot of mental energy to comprehend the relationships betweenthe individual keywords; 2) do not provide the ability to visualize theitems as a single list; and 3) do not provide the data in a single list,making it more difficult to include metric data related to each item(such as search volume data for keywords).

Grouping blocks are most similar to cluster diagrams. A clusteringdiagram uses lines and connectors that are “out-dented” into the leftmargin (or right, bottom or top) allowing the grouped items to remainleft aligned in a single list and allows for the display of associatedmetrics in columns. The weakness of the clustering diagram is that thelines branch out in visually distracting ways. Also the connectors arethin lines. Like the tree controllers it takes a lot of mental energy totrace the lines with the eye to match them to the grouped items.Finally, cluster diagrams are display only and provide no interactivity.

Grouping blocks solve the problems that these other grouping methods donot. And uniquely grouping blocks allow the user to more directlyperceive the relationships because the “blockiness” makes them moreeasily perceived. This blockiness aids the eye by drawing iteffortlessly across the row of associated data. And subgroups are moredirectly perceived because the vertical leg of the inverted-Lessentially encapsulates its subgroups.

Unique Nature of the “Inverted L” Grouping Block:

Grouping Block Shapes:

The “inverted-L” shape: The “inverted-L” shaped grouping block is usedwhen a group (or “page”) is a parent to one or more other groups (orpages). Or more generally when a concept is a parent to one or moresubconcepts.

For example, “insurance” is a parent concept to both “car insurance” and“motorcycle insurance.” A website could have pages for all threeconcepts. Therefore the inverted-L is used where the horizontal legencapsulates the parent concept group “insurance” and the blocksencapsulating the child concept groups “motorcycle insurance” and “carinsurance” are placed below the horizontal leg but to the right of thevertical leg of the parent block. The vertical leg of the inverted-L isset to a length just tall enough that all subgroup grouping blocks fit.This process can be repeated so that there are grouping blocks withinthe scope of other grouping blocks.

In general, the horizontal leg of the L-shaped block groups items thatrepresent a parent concept to the groups within the scope of thevertical leg.

Other Shapes:

In certain applications, a user may not want to generate a page for“insurance” but wants to generate a page for “car insurance” and a pagefor “motorcycle insurance” only. In this instance, the user might stillwant to have a grouping block to visually group these two as types of“insurance.” In this case, only a vertical leg is required (i.e.“vertical only” grouping block) to represent the “insurance” concept asa parent concept to “car insurance” and “motorcycle insurance” sincethere is no page needed for the parent concept.

The horizontal leg of a grouping block groups the keywords. A verticalleg groups other grouping blocks. In general, there are three types ofgrouping blocks:

“Horizontal only”—Groups keywords but does not have subgroups.

“Vertical only”—Groups other grouping blocks but does not also groupkeywords for a parent page of a concept.

“L-block”—combination of a vertical and a horizontal grouping block. Thehorizontal leg groups keywords for a parent page and the vertical leggroups subgroups.

Reason for the inverted-L shape as a block:

A visual way of grouping items into a group was needed. This is thefunction of the horizontal leg.

A visual way of grouping groups into other groups was needed. This isthe function of the vertical leg.

A way of visually displaying the hierarchy of grouped groups was needed.This allows for blocks “under” other blocks. (i.e. subblocks orsubgroups).

A way of displaying a parent group that is left aligned with all othergroups yet visually groups all of its subgroups. This is the function ofboth horizontal and vertical legs together in the shape of an invertedL.

The inverted-L grouping block satisfies all four of these needs. 1) Tovisually group items (such as keywords) into a group a rectangle to theleft of the items can be used. 2&3) To further group groups into othergroups and display their hierarchy, more than one rectangle can be used.For example three rectangles could be used to represent one parentconcept with two child concepts (One large rectangle on the left and twosmaller ones stacked on top of each other to the right). 4) The troublecomes when you try to represent say two concepts where one is a parentof the other one but the parent item must be left aligned with andvertically above the child item. In this case the solution is toconsider the three blocks previously mentioned but merge the top andleft blocks into an inverted-L shape. Now this block represents aparenting relationship and can be visually displayed in line with thechild groups.

Horizontal and Vertical Legs of the Inverted-L Grouping Block:

To visually group items such as keywords into a group, the horizontalleg of the inverted-L accomplishes this by using its height as agrouping symbol. To visually group groups, the vertical leg of theinverted-L accomplishes this. To visually display the hierarchy, theinverted-L block is a combination of two rectangles. The horizontalrectangle (horizontal leg) represents a specific group that is a parentconcept to all subgroups under it. The vertical height of the horizontalleg spans the height of the item rows containing the keywords (orgrouped items). The vertical rectangle (vertical leg) represents theoverall concept of the group and contains all subgroups including theparent group. (The term “vertical leg” in this context is the entirevertical length of the block not just the portion that encapsulates thesubgroups.)

Grouping Blocks are one of the most unique features of the presentinvention.

Information displayed within Grouping blocks:

Summary & Aggregate information:

Optionally, data about the items that grouping blocks apply to can bedisplayed directly within the area of the blocks. The horizontal leg maydisplay summary or aggregate metrics of the data displayed in the tablefor the group within the scope of the horizontal leg. For example, thesum of all of the search volumes for all keywords assigned to a pagecould be displayed directly within the grouping block (such as withinthe horizontal leg since this information is derived from theinformation grouped by the horizontal leg). Likewise summary oraggregate metrics of the data displayed in the table for all groupswithin the scope of the vertical leg (in this context vertical leg isthe entire height of the block including the height of the horizontalleg) can be displayed in the area of the grouping block (for example inthe vertical leg).

To clarify, the vertical leg can display summary metrics for all pagesand subgroups within the L-block's scope. So if all keywords within thescope of the inverted-L had a total search volume of 40,000 visits thenthis number could be displayed in the vertical leg of the groupingblock. Similarly, since the horizontal leg applies to the grouped itemswithin its scope, the summary information displayed in the horizontalleg would apply to just that item group. So if a particular item groupof keywords had a total search volume of 1200 then this informationcould be displayed within the horizontal leg. In the preferredimplementation of the present invention the summary data is placedwithin the leg of the inverted-L that is most relevant to the meaning ofthe number.

For example, since the horizontal leg governs an item group then thesummary data for that item group is in that leg. For summary data thatapplies within the scope of the entire inverted-L grouping block thenthat information is displayed within the vertical leg because thevertical leg defines the entire scope of the block. The reason forplacing this summary data within the blocks is to make it easy for theuser to judge the value or importance of each group and make decisionsas to what actions to take such as deleting or combining groups. Thereason for including this information within the blocks is because thatis where the user's eye will be when they need to take action sinceaction will typically involve clicking and dragging or right clickingthe grouping blocks directly.

In the above examples, only a single summary metric was illustrated buta plurality of such metrics can be displayed. Furthermore, these metricscan be user designed and configurable.

Optionally, the group summary information contained within thehorizontal leg can be displayed in the data grid as summary or dataaggregation rows below each group's item metrics for each page (1510).Placing this information in this location will be helpful to the userwhen they are scrutinizing individual page metrics across multiple pagesand comparing them with each other. This idea can be extend to the scopeof a vertical leg to provide summary data for the entire block

Grouping Blocks as a Visual Aid:

Grouping blocks also make it easy for the eye to move across the entiregroup row. The eye can easily move from the grouping block's horizontalleg across the entire group row to effortlessly understand whatinformation falls within that block's scope. This reduces mental fatigueand confusion that occur with other visual grouping methods such as treecontrollers or cluster diagrams. This is accomplished by the fact thatthe grouping block has “visual area.” The eye sees this area that itmatches and lines up with the information in the group rows. So the eyemore easily relates the “group symbol” with the data. This is unlike thethin lines of tree diagrams or clustering diagrams where there is no“visual area” of the grouping symbol to associate with the “visual areaof the rows containing data”.

Grouping Block Functionality:

Grouping blocks are not simply static visual symbols. They areinteractive tools and provide information about the items within theirscope. They can also be moved and combined. They can performcalculations or operations on the data within their scope. Thesefunctions are made available to the user through buttons within theblock or through a context menu available by right clicking. Buttons onthe horizontal leg operate on data or information within the scope ofthe horizontal leg. Likewise buttons or the context menu available byright clicking the vertical leg operate on data or information withinthe scope of the vertical leg.

Group rule (or differentiator or “defining term”) indicator per group(530)—In each grouping block there is a visual indication of how thatgroup is defined—what types of items it includes. This is typically aword or series of words or symbols such as “car” or “los angeles” and inthe most preferred embodiment of the present invention is in the upperleft corner of the grouping block. These words along with their user (orsystem) defined equivalencies make it clear to the user what each grouprepresents in relation to the other groups.

For example, if there are three inverted-L shapes where each is asubgroup under the previous one then the group rule indicators in theupper left corners from left to right could be “insurance”, “car”,“online.” Or using arrow symbol to show the directional relationship:insurance>car>online. This indicates the outer group “insurance” has asubgroup relating to “car insurance” which has a subgroup related to“car insurance online.” Another way of saying this is that “online” isunder “car” and “car” is under “insurance.”

The above example illustrates one type of grouping block context thatthe invention allows. This type is called a “semantic” grouping blockbecause the items in the subgroups contain all of the words (or the samemeaning of the word) of the parents. For example, in the example abovethe group containing “car insurance online” has a parent groupcontaining the word “car” and a great grandparent containing“insurance.” So the subgroups contain the words displayed in the GroupRule (corner of the grouping blocks). So the hierarchy is structuringgroups based on whether the Group Rule word is contained in eachkeyword.

But there are other ways to group items. One very common method is bycategory. For example, an attorney's website might have pages about“personal injury” as well as “business law.” In this case, the user maywant to group concepts such as “slip and fall” and “car accident” underthe category “personal injury” and to group “patents” and “trademarks”under “business law.” In this case “slip and fall” does not contain anyof the same words as “personal injury.” A category based grouping methodis needed to handle this situation. This is the role of the “categorygrouping block.”

As depicted in FIG. 40, another example of the use of the categorygrouping block is in the case of grouping keywords relating togeographic regions. So a category grouping block of “florida” (4030)could contain a keyword “insurance tampa” (4070) even though the word“florida” or even the abbreviation “fl” does not appear in the keyword.In the case of category blocks a database (or other data store) must bepopulated with information about the hierarchical relationship betweenthe categories so that the grouping blocks can be arranged to displaythe relationship. So based on the relationships between the categoriesthe system knows that “tampa” is a city in “florida” and automaticallyplaces any item (such as a keyword) containing “tampa” into the“florida” and then visually arranges the blocks to show therelationship. Typically, the categories are calculated first (displayingthe category blocks towards the left of the hierarchy) and then thesemantic hierarchy blocks are assembled under each category (ie. to theright) as depicted in FIG. 40. Also note in FIG. 40 that there is adedicated “geo” block which is a vertical only category block. Thisallows all geo terms to be encapsulated in a single block at level 1 inthe hierarchy. The “geo” block can be manually created by the user orautomatically inserted by the system when there are geographicallyrelated keywords in the list. Optionally the user can turn off thespecial geographic grouping and allow the groups containing geographicterms to fall into the hierarchy based on their semantic relationshipswithin the hierarchy.

As illustrated above, both category blocks and semantic blocks can beused within the same hierarchy. A particular block can behave as both acategory and semantic block. For example, in a geographic context ablock with a group rule of “usa” (4020) could encapsulate keywords thatcontain “usa” such as “car insurance usa” (4080) but also encapsulatethe keyword “car insurance florida” (4090) because Florida is containedwithin the United States (ie. USA). In this case it is behaving as botha “semantic” grouping block in the case of keyword “car insurance usa”(4080) but also as a “category” grouping block in the case of “carinsurance florida” (4090).

Both category and semantic grouping blocks can be either algorithmically(automatically) created or manually created by the user.

When a hierarchy is algorithmically calculated it first looks for anyrules for grouping by category that the user has defined or are prebuiltinto the system. After it groups by category it then groups within eachcategory semantically. (Optionally the user could select for the reverseprocess or another process that can be programmed into the system.)

A typical type of predetermined category structure that a user couldinput is for the legal profession using a text file that can be importedinto the system similar to the following:

Law>personal injury>slip and fall

Law>personal injury>car accident

Law>personal injury>car accident>drunk driving

Law>personal injury>car accident>head on collision

Law>personal injury>dog bite

Law>business>patents

Law>business>trademarks

This hierarchical ordering would be used by the system to createcategory grouping blocks. Then within each category grouping the sematicgrouping methodology would be utilized.

Another example of using category based grouping blocks is to categorizeitems by stages in a thought process. For example, in the area of searchmarketing keywords have implicit in them an intent by the searcher. Asearchers entering keyword phrases such as “what is car insurance”, “howdo you get the best deal on car insurance” and “cheap car insurance.”All have different intents. The first two are looking for information.The third is looking to purchase. So keywords and keyword groups can becategorized as “informational” and “transactional” (transactionalmeaning they are looking to perform some transaction). Grouping blockscan be used to group keyword groups by these category types. Thesegroupings can be automatically determined by the system or manually bythe user.

Another example of category based grouping along these lines is to groupkeywords to a sales funnel. The user may identify five stages in thesales funnel for the business they are optimizing the site for. Based onthe user's interpretation of the intent behind each keyword they can mapthe keywords to the each of the identified sales stages. This could beperformed manually by the user or automatically by the system based onsystem defined rules or user defined rules. Since any group type cancontain any other group type the user can build up a structurecontaining multiple types of category grouping blocks along withsemantic grouping blocks. So in our example the user could have bothintent based categories (such as informational and transactional) andsales funnel based categories and also include semantic grouping blocks.

To manually create a category or semantic grouping block the user canright click on the blank canvas of a project and select from a contextmenu an option to create either a semantic block or a category block.Then to build up a hierarchy the user can either right click (or use amenu on the main menu or a button on the toolbar) on the canvas again tocreate a block that is a peer of the first block using the same methodas used to create the first or to right click on the first block andselect from the context menu an option to create a subblock of thefirst. The user can build up any structure they chose using this method.The user can then assign a Group rule to each block by clicking theblock and either using the context menu, a menu or a toolbar button. Inthe case of a semantic rule the user enters a word such as “car.” Topopulate the hierarchy with keywords the user can then either manuallyimport them, manually type them using the method of inserting individualkeywords into groups or have the system automatically use the words inthe Group Rules in the hierarchy as “seed” terms a then pull keywordsfrom available data sources.

For example, if a user manually created a hierarchy containing a blockwith location in the hierarchy car>insurance>cheap, then the keywordphrase “car insurance cheap” would be used as a seed to populate thatblock, keywords would be pulled from available data sources and thegroup would be populated with the results. Each group in the hierarchywould perform an analogous operation to populate each group in theentire hierarchy.

Grouping blocks display buttons within their shape that operate on thegroup they are associated with. For example there are two delete buttonson the L-block. The one on the horizontal leg deletes the horizontal leg(and the items such as keywords and their data associated with it). Theone on the vertical leg deletes the entire block.

In the most preferred embodiments of the present invention, groupingblocks contain a button to load additional subgroups of the currentgroup. A project may have more keywords than are displayed in the userinterface. This can be for various reasons one of which is to reduce thenumber of groups in the display so that the user is not overwhelmed withthousands of groups to consider. The system is designed to be configuredto display a fixed number of groups on first load (e.g., 200). Anygroups that do not make this cutoff can still be displayed for the user.If a particular group has subgroups that have been calculated by thesystem but not displayed in the user interface and a button will appearon the block with a number next to it which indicates how many subgroupsthe group has that are not displayed.

The user can choose to click this button and load these subgroups. Theuser can optionally load a subset of these groups if they choose. Forexample there may be 745 unloaded subgroups of a particular group andthe user may only want to load the next 50 based on the establishedmethod for ranking them (such as the total search volume for the group).When the user chooses to load subgroups of a particular group it ispossible that the subgroups themselves will have unloaded subgroups andthe user can then chose to load those by clicking the button. The reasonfor this methodology is so that the user is not overwhelmed thisthousands of groups that all have to be considered. By only displaying aselection and allowing the user to dive deeper into groups of interestthe user saves time and mental energy.

Grouping blocks include a “color tagging” method to allow users toselect groups of interest and then view just those groups yet still havethe capability to view the entire structure. By default all groups aretagged “gray” and display gray colored circles on the horizontal andvertical legs. A user can change the color by clicking. If the userclicks a gray circle it turns white. White indicates that the user“likes” the group and wants to shortlist it for later consideration. Theuser can change their mind and then click and hold on the circle toreveal a menu that allows the color to be changed, perhaps back to grayif the user changes their mind. If the user clicks a delete button onthe block the block is removed from the display as usual but the colortag is set to black. (On the toolbar there is a menu where the user canchoose to view only groups that have been tagged a certain way, forexample to view only the “white” groups. This menu allows the user toview blocks tagged as “white”, “black”, “red”, “gray”. The menu alsooffers “All” which displays all colors except for black. To view groupstagged as black the user must select black from the menu.

In at least some preferred embodiments of the present invention, thereare color tags applied to both the vertical and horizontal legs. If thehorizontal leg's color tag is clicked or changed that change applies toonly the horizontal legs items. If the vertical leg's color tag ischanged that setting applies to all the color tags within the scope forthat vertical leg and all color tags within it are changed to theselected color. A user is free to then change individual horizontal orvertical leg color tags that were subgroups of the parent group whosecolor tag they just changed.

The color tag “red” is reserved by the system for groups that are newlydisplayed to the user within and existing project. This way if a useropts to load non-displayed subgroups they will be able to easily seewhich groups were added. After a period of time or based on othercriteria the red circle change to gray unless the user changed them inthe meantime. Red tags have the same meaning a gray in terms of meaning“default.” i.e. the user has made no explicit decision regarding thegroup.

The system can be configured with additional color tags to allow foradditional flexibility. Additional tags can be defined by the user.

Since clicking the delete button tags keywords as “black” and does notactually delete them from the project a separate function is availablethat will allow a user to completely remove groups an keywords from theproject.

Grouping block collapse controller (850)—Each block that has a verticalleg has the ability to be collapsed so that only a horizontal row isdisplayed (such as the horizontal leg). If the block is an L-block thenthe horizontal leg is displayed with three dots in the bottom left ofthe block where the part of the vertical leg used to be. This has theeffect of hiding the subgroups. If the block is a vertical only blockthen the row collapses to an arbitrary height determined by the system(such as the height of a keyword row). There is a button on these blocksthat toggles this functionally to collapse and un-collapse the block.

Referring now to FIGS. 41, 42, 43 the blocks also have a controller 4110associated with them (such as a tab outside the block along the leftside of the block or above the block) that allows the user to insert ablock into the hierarchy 4130. The user can enter a defining term in theprovided controller 4120. If the block is a category block it willtypically carry and indication that it is a category block. In theexample here the defining term is encapsulated in angled brackets butany suitable method of identifying the block type is acceptable such asthe block being a different color or carrying an icon indicating itstype. In the example the controller 4110 is a tab on the left side ofthe block but other methods and locations of inserting manual block areavailable. Other methods could include context menu for example. Otherlocation could include above or below a block or to the right of ablock. When a user adds a block using this method it is by default acategory block. Optionally the user could create a semantic block.

Category blocks can be manipulated in the same ways as sematic blockssuch as using drag and drop to combine them, move them, etc. A user canalso drag and drop other blocks inside them. FIG. 44 shows the result ofdragging the “rate” block into the “<transactional>” category block.

In FIG. 45 and FIG. 46, each vertical only leg 4510 can have ahorizontal leg manually added to it 4610 using an appropriate controllersuch as by using the block's context menu. Then the user can begin toadd items to the block manually or automatically by using an automaticpopulation method that the system provides or the user has defined. Theuser may also prefer not to add any items to the group but still assigna URL to the group. The reason for this is that the site that is beingoptimized may have a page that the SEO expert wants to account for intheir hierarchy but does not want to target any keywords to.

Similarly, each horizontal only leg can have a vertical leg added to itwith analogous capabilities for populating it with sub blocks and items.When the cursor moves over blocks the block and the items and datawithin the scope of that portion of the block are highlighted so theuser can see what will be selected if they click. When a block isclicked it becomes selected and is visually highlighted in a bolder waythan when the cursor was moved over it. If the horizontal leg is clickedthen the horizontal leg is highlighted and all of its associated data inthe table is highlighted. If the vertical leg is clicked then the entireblock is selected and is visually highlighted and all of its associatedkeywords and data.

Once a block is selected, various operations can be performed on it suchas moving it with drag and drop, combining it with other blocks withdrag and drop, deleting the block using the context menu or a keyboardshortcut, or selecting an action from the context menu.

Multiple blocks can be selected at the same time and operations can beperformed on the group such as using a menu, toolbar item or contextmenu. Operations on multiple blocks simultaneously include deletingblocks, moving blocks with drag and drop, moving blocks by copy andpaste. A range of blocks can be multi selected or individual blocks canbe independently selected and added to the list of multi-selected items.If individual blocks are selected then the user as the option to deletethe blocks that are between the selected blocks as well as deleting theselected blocks.

Various metrics can be pulled for the keywords within the scope of aselected block. For example if the horizontal leg is selected then theGoogle ranking position of the project's defined target site for eachkeyword in the scope of the horizontal leg can be calculated as well asfor any other metric within the scope of that leg. Similarly if thevertical leg is selected then metrics for the keywords or target pagecan be calculated for the items in the scope of the vertical leg.

Referring now to FIG. 47, any block that has a vertical leg such as anL-block can be collapsed so that its subgroups can be hidden by clickinga controller (shown here as a triangle) on the block or using thecontext menu or another system provided controller. Clicking thistriangle initially collapse the block, leaving only the horizontal legvisible and displays an indication 4720 (shown here as three dots) tothe user that the block is collapsed and that there are subgroups hiddenthat can be made visible by clicking the collapse controller again.Blocks in their collapsed state retain all of their functionalityincluding drag and drop and behave exactly as if they were notcollapsed.

For example, if a user drags a horizontal let to it's parent L-blockthen it is converted to a subpage block within the receiving horizontalleg. The same occurs if the block was collapsed. To get the result ofdragging the subblock's vertical leg to the parent's horizontal leg theuser would click the left side of the collapsed block which now acquiresthe functions of a vertical leg and drags it to the horizontal leg ofthe parent then the entire subgroup is then converted to a subpage groupjust as it would if the subgroup was not collapsed and the user clickedthe vertical leg and dragged it into the parent's horizontal leg.

If the user wishes to simply move a block and all of its subgroups asyou would normally do when not collapsed by dragging he vertical leg,the user can accomplish by clicking the left side of the collapsed blockwhere that side of the block will now assume the functionality of thevertical leg.

All other functionality the block contains when not collapsed isavailable while it is collapsed whether it be moving.

Collapsing blocks can be performed in bulk on all blocks at the samelevel of the hierarchy. For example, the user can request to collapseall blocks at the third level of the hierarchy as shown in 4700. Thisoperation can be performed using a UI controller to “collapse all atthis level” such as the context menu on the block. The reason a userwould want to collapse all blocks at the same level of the hierarchy isto make it easy to quickly view all of the major themes at that levelwithout having to scroll through all of the subgroups. The user canreverse this operation by using the UI controller to “expand all at thislevel.”

Referring now to FIG. 48, additional user interface elements aredepicted. As shown in FIG. 48, since each group can contain a largenumber of items a lot of visual real estate can be taken up on thescreen by items that are essentially the same or nearly the same. Forexample a group containing an item “cheap car insurance companies” couldhave easily 20 or more keywords in the group where they all basicallymean the same thing. It is not necessary for the user to see all of themon screen all the time. So they system includes the ability to constraineach horizontal leg's height to display a smaller number of items ineach group, for example at most two 4810 as shown in the diagram 4800.This allows the user to see several examples of the items in that groupwithout taking up so much of the screen. This allow the user to viewmore of the hierarchy on the screen and have a better understanding ofthe overall structure.

Both the ability to collapse all at the same level (FIG. 47) and theability to limit the number of visible items in a group (FIG. 48) can beboth used at the same time to give an even more compact view of theoverall hierarchy.

Moving Blocks to Change Hierarchy:

If the default algorithm does not hierarchically arrange the groups tothe user's liking the user can easily change the groupings manually byclicking and dragging the blocks to change the hierarchy. For example inthe previously mentioned ordering the user could click the “online”grouping block and move it above the “car” block to change the hierarchyto “insurance>online>car.” By default all subgroups within the scope ofthe outer most grouping block changing position will recalculate theirgroupings.

Need for Manual Adjustment:

In many cases, automated algorithmic groupings produce results that areclose to what is needed but requires a human to make judgment callsabout the ideal groupings since they must match some human preconceptionthat the algorithm was inadequate to address. For example, in the areaof search marketing many people search for “auto insurance” when theyreally are looking for “car insurance” as opposed to “truck insurance”or “motorcycle insurance.” The Internet marketer would likely want toconsider as equivalent the phrases “auto” and “car”. The system allowsthe user to set synonym equivalencies by manually entering them into thesystem and letting the algorithm utilize this data. But even in thiscase there are situations where this will fail such as for a keywordlike “auto insurance for two wheel vehicles” which could logically beincluded in the “motorcycle insurance” category (although in reality aperson could be searching for “moped insurance.”).

Another case is where there is a reason for including an item such as akeyword in a group although it does not hierarchically fit in thatgroup. For example, a search engine marketer may designate a page totarget “car insurance” but a search engine such as Google not only ranksthat page for car insurance related terms but also currently ranks itvery high for “truck insurance deals” even though there is alreadyanother page dedicated to “truck insurance” which is not ranking highlyfor this keyword. The marketer may want to manually assign the keywordto the page that it is currently highly ranking on instead of to thelower ranking page. Of course the algorithm could be modified to accountfor this type of variation but there will always be some case that analgorithm can't account for so manual action will always be a functionalrequirement.

The same is true for groups and not just items such as individualkeywords. A user may have a reason for manually combining groups thatthe algorithm did not put together. For example the algorithm may createtwo separate groups such as “walk in freezer” and “large commercialfreezer”. The marketer may have reason to assign these to the same pageof a website and the algorithm would likely not have grouped these tothe same page. The present invention makes it easy for the user tomanually combine these groups by clicking and dragging one group ontoanother.

Since grouping information such as keywords often involves working withlarge numbers of items at a time (thousands or millions) allowing theuser to quickly and easily manipulate this data is critically importantto promote maximum productivity. Many current tools that groupinformation such as keywords often have cumbersome methods for manuallyoverriding defaults such as requiring the user to click a checkbox nextto the item in question, click a menu to select an action, then click abutton to execute that action. Doing this dozens or hundreds of timesmakes the work burdensome. To solve this problem we allow the user todrag and drop to make these changes. They can click and drag an item(such as a keyword and its associated metrics) from one group toanother, or click and drag one group onto another to combine them orclick and drag to move a group to a different location in the hierarchy.

Another way that keyword tools typically are set up if they allow theuser to change the groupings is by placing grouped items in folders. Toview the keywords in a group you must click on a folder to view thekeywords and you can only see the keywords in that folder—thus making itdifficult for the user to see the overall relationships between the allof the keywords. The present invention solves this problem by displayingall keywords in a single list.

Group to Single Page Focus:

In SEO, it is a common practice to assign each targeted keyword to asingle webpage. Each page is often assigned several keywords. Then thepage is optimized for those keywords by including them or variations ofthe keywords in the page content and HTML code (such as in the bodycontent and the “title” tag).

Most existing keyword grouping tools do not attempt to group keywordswith the purpose of grouping specific sets of keywords to be used onindividual pages of a website—they group only into generally relatedgroups. The most preferred version of the algorithms of the presentinvention are configured to group keywords into groups appropriate for asingle page of a site. To fully support the goal of targeting keywordsto specific pages, the system provides for manual adjustments so theuser can get the keyword groupings and grouping blocks just the way theywant them. In fact, most Internet marketers perform the bulk of theirkeyword research not in dedicated keyword research tools but in aspreadsheet such as Microsoft® Excel®. The reason for this is that theexisting keyword research tools do not work as a “keyword workspace”that allows the user to configure their information in a free form way.A spreadsheet provides that flexibility. However, since spreadsheetswere not designed for keyword research they lack many features that thatkeyword researchers need. The present invention is designed to take theplace of the spreadsheet in the keyword research process while alsoproviding features more suited to keyword research.

Most other keyword tools are dedicated to creating groups appropriatefor paid advertising such as a PPC campaign. While the present inventionemphasizes its unique nature for supporting keyword research fornon-paid search it is also applicable to paid search.

Some other tools produce groupings of various strictness to make thegroups more finely grouped or less finely grouped. This approach, whileuseful for certain applications, can cause the user a significant amountof time in the keyword selection and page assignment process. In manycases, the user must export the keyword data from the system so thatthey can have more control over the grouping, selection and presentationof the keywords. In contrast, the present invention solves this issue byproviding the required functionality to adjust keyword grouping andselection within a single user interface, without having to export andsubsequently import into a program such as a spreadsheet to perform theadditional configuration.

Single UI and Tool:

An important benefit of this invention is that the entire process ofkeyword research (from keyword discovery to grouping to page assignment)can be accomplished in a single user interface without the need tochange screens or to export the keywords at any time. Additionally, theuser can create projects and track historical performance over time toprovide for continual management of the keywords throughout the life ofthe campaign. Additionally, additional algorithms can be developed thatwill automatically identify keyword suggestions based on automaticallygathered information about changes in rankings, etc. and suggest thosenew keywords or keyword groups to the user by automatically adding themto the page group or hierarchy. A visual cue such as italics, color oran icon can be utilized to indicate that these keywords or groups wereautomatically suggested. This visual cue allows the user to decidewhether they want to target this keyword or group or not.

This is particularly useful in our particular user interface because thekeywords are already grouped by page and pages into a hierarchicaldisplay so it will be easy for the user to see what new keywords orgroups are being suggested for that page because the suggested keywordswill be displayed in the same screen that they will already be viewingon a periodic basis (ex. monthly). It will also be enjoyable for usersto see newly suggested keywords each time they use the system. Othertools that provide automatic new keyword suggestions have a specialsection of the application for viewing “new keyword opportunities.” Thenthe user needs to integrate those new opportunities into the existingstrategy and display. Our system eliminates that step allowing the userto simply accept or reject the suggestion in place.

Various aspects of the present invention are described herein withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products. It will be understoodthat each block of the flowchart illustrations and/or block diagrams,and combinations of blocks in the flowchart illustrations and/or blockdiagrams, can be implemented by computer program instructions. Thesecomputer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Misc Computer Network Information:

These computer program instructions may also be stored in or on acomputer readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Additionally, various preferred embodiments of the program product maybe configured to: create and modify multiple databases; track, updateand store data related to the optimized manipulation and display of datasuch as keywords; configure and implement various display functions fora multitude of websites accessed by users; track and store informationabout various services and program features; and provide one or moreuser interfaces for accomplishing all of these functions.

In this fashion, the appropriate persons or entities can utilize theprogram product to initiate and complete a wide variety ofdatabase-related applications for keyword researching, Internetmarketing and SEO activities. Similarly, a program product in accordancewith one or more preferred embodiments of the present invention can alsobe configured to perform substantially all of the steps depicted anddescribed in conjunction with the figures below for implementing akeyword tool and associated visual display of keywords as describedherein.

While the present invention will be described in detail by using variousexamples of keyword researching for an SEO environment, those skilled inthe art will recognize that the equipment, processes, methods andtechniques described herein have broad applicability to otherenvironments and applications where quick and efficient gathering oflist based information, grouping such information, and grouping and/orsorting large quantities of related data is desirable.

Referring now to FIG. 1, a computer-based system 100 for keywordresearch and grouping in accordance with a preferred exemplaryembodiment of the present invention comprises: a data server (computer)130; at least one of a desktop computer 170 or a laptop computer 180; awireless communication device 175; and an optional mobile communicationdevice 190 (e.g., a smartphone or personal digital assistant “PDA”) allconnected or coupled via a local area network 120 to the Internet 195via an Internet connection 185.

Taken together, the components of computer-based system 100 provide aplatform for quickly and efficiently manipulating and displaying datasuch as keywords for a wide variety of purposes. Computer-based system100 provides a mechanism for individuals and organizations toefficiently and effectively manipulate and display data such as keywordswithout the time-consuming and inefficient methods associated withtraditional data gathering and manipulation tools.

In the most preferred embodiments of the present invention,computer-based system 100 is configured as a system that will be used tomanipulate and display data such as keywords for Internet marketing andSEO purpose. However, those skilled in the art will recognize that thevarious preferred embodiments of the present invention have additionalapplication in other, unrelated fields. For example, any field ofendeavor where large numbers of related items or words need to bemanipulated and displayed in a graphical user interface with flexiblegrouping functions would be well suited for adoption of one or morepreferred embodiments of the present invention.

Network 120 represents any suitable computer communication link orsimilar communication mechanism, including some combination of ahardwired connection, an internal or external bus, a connection fortelephone access via a modem, standard co-axial cable lines, high-speedT1 line, radio, infrared or other wireless communication methodologies(e.g., “Bluetooth,” infrared (IR), etc.), private or proprietary localarea networks (LANs) and wide area networks (WANs), as well as standardcomputer network communications over Internet 195 or an internal network(e.g. “intranet”) via a wired or wireless connection, or any othersuitable connection between computers and computer components known tothose skilled in the art, whether currently known or developed in thefuture. It should be noted that portions of network 120 might suitablyinclude a dial-up phone connection, a broadcast cable transmission line,a Digital Subscriber Line (DSL), an ISDN line, or similar publicutility-like access link.

In the most preferred embodiments of the present invention, at least aportion of network 120 comprises a standard Internet connection 185between at least some of the components of computer-based system forproviding optimized message creation and delivery 100 for providingaccess to additional network resources and other remote locations.Network 120 provides for communication between the various components ofcomputer-based system 100 and allows for relevant information to betransmitted from device to device. In this fashion, a user ofcomputer-based system 100 can quickly and easily gain access to therelevant data and information utilized to manipulation and display ofdata such as keywords as described in conjunction with the variouspreferred embodiments of the present invention.

In the most preferred embodiments of the present invention, network 120is configured to provide relatively high-speed transmission of textualinformation, audio and video data and signals, and also comprises atleast an Internet connection 185 for transmission of data captured byone or more computers 170 or 180.

In addition to the other components shown in FIG. 1, a wirelesscommunication access device 175 may optionally be communicativelycoupled to network 120 and represents any type of wireless communicationmechanism that is known to those skilled in the art to provide forwireless communication between network 120 and the various devicesassociated with network 120, including desktop computer 170, laptopcomputer 180 and as well as mobile communication device 190. The mostpreferred embodiments of an acceptable wireless communication accessdevice may comprise any type of wireless bridge, wireless router, orwi-fi “hotspot.”

Regardless of the specific components, physical nature, and topology,network 120 serves to logically and communicatively link the physicalcomponents of computer-based system 100, thereby enabling stable andconsistent communication between the components. This is especiallyimportant because in many preferred embodiments of the presentinvention, data server 130, desktop computer 170, and laptop computer180 may be geographically remote and/or physically separated from eachother.

Data server 130 represents a relatively powerful computer system that ismade available to desktop computer 170, laptop computer 180, and/ormobile communication device 190 via network 120. Various hardwarecomponents (not shown this FIG.) such as external monitors, keyboards,mice, tablets, hard disk drives, recordable CD-ROM/DVD drives,jukeboxes, fax servers, magnetic tapes, and other devices known to thoseskilled in the art may be used in conjunction with data server 130. Dataserver 130 may also provide various additional software components (notshown this FIG.) such as database servers, web servers, firewalls,security software, and the like. The use of these various hardware andsoftware components is well known to those skilled in the art.

Given the relative advances in the state-of-the-art computer systemsavailable today, it is anticipated that functions of data server 130 maybe provided by many standard, readily available data servers. This mayalso include the deployment of multiple inter-connected and redundantdata servers 130 to enhance the availability and reliability of thefunctions provided by data server 130. Depending on the desired size andrelative power required for data server 130, storage area network (SAN)technology may also be deployed in certain preferred embodiments of thepresent invention. Additionally, various biometric and identificationverification devices for identifying users and controlling access aswell as creating and verifying digital signatures (i.e., electronicsignature processing) may also be included.

Desktop computer 170 may be any type of computer system known to thoseskilled in the art that is capable of being configured for use withcomputer-based system 100 as described herein. It should be noted thatno specific operating system or hardware platform is excluded and it isanticipated that many different hardware and software platforms may beconfigured to create computer 170. As previously explained inconjunction with data server 130, various hardware components andsoftware components (not shown this FIG.) known to those skilled in theart may be used in conjunction with computer 170. It should be notedthat in the most preferred embodiments of the present invention, desktopcomputer 170 may be linked (via wired or wireless connection) to its ownLAN or WAN and have access to one or more additional data servers (notshown this FIG.).

Similarly, laptop computer 180 may be any type of relatively lightweightportable computer system known to those skilled in the art that iscapable of being configured for use with computer-based system 100 asdescribed herein. This includes tablet computers (e.g., iPad®),pen-based computers and the like. Computer 180 may also be configured toallow the transmission and reception of audio signals, messages,communications, and various types of alerts via server 130 and network120.

Additionally, netbooks, tablets, handheld and palmtop devices are alsospecifically included within the description of devices that may bedeployed as a laptop computer 180. It should be noted that no specificoperating system or hardware platform is excluded and it is anticipatedthat many different hardware and software platforms may be configured tocreate laptop computer 180. As previously explained in conjunction withdata server 130, various hardware and software components (not shownthis FIG.) known to those skilled in the art may be used in conjunctionwith laptop computer 180. It should also be noted that in some preferredembodiments of the present invention, laptop computer 180 may be linkedto its own LAN or WAN and has access to its own data server (not shownthis FIG.).

In general, the communication between devices associated with dataserver 130 will be data associated with Internet marketing and SEOpurposes. The users of desktop computer 170 and/or laptop computer 180may be marketing professionals, researchers, consumers, and others whoare seeking to create and modify keyword campaigns and identify the mostappropriate keywords to be used or avoided for various keywordapplications.

It should be noted that while FIG. 1 shows only a single desktopcomputer 170 and a single laptop computer 180, it is anticipated thatthe most preferred embodiments of the present invention will comprisedozens or even hundreds of computers 170 and laptop computers 180. Eachof these computers 170 and 180 will be configured to access data server130 in an appropriately secure way so as to accomplish the specificobjectives of the user of the desktop computer 170 or laptop computer180.

For example, a service provider may offer the use of the system of FIG.1 in a software as a service (SAAS) environment and provide access todata server 130 via network 120 to subscribers or customers. In thisfashion, the service provider and customers may utilize desktopcomputers 170 or laptop computer 180 or mobile communication device 190to access data server 130 and access, create, update or otherwise modifyvarious keyword searches, keyword campaigns, etc. An operator, locatedin a remote location, may use desktop computer 170 or laptop computer180 to access data server 130 to retrieve information about themanipulation and display of data such as keywords by the users ofcomputer-based system 100.

In at least some preferred embodiments of the present invention,multiple desktop computers 170 and multiple laptop computers 180 willall be configured to communicate simultaneously with data server 130 andwith each other via network 120. In addition, the most preferredembodiments of the present invention include a SAAS or Platform as aService (PAAS) environment where data server 130 may be operated in ahosted operation. In this fashion, multiple desktop computers 170 andlaptop computers 180 will have access to data server 130 and thedatabases stored thereon via a global computer network such as Internet195. Data server 130 is further described below in conjunction with FIG.2 below.

An optional printer and an optional fax machine (not shown this FIG.)may also be deployed for various hard copy data output requirements andmay be considered to be any standard peripheral devices used fortransmitting or outputting paper-based version of website contentgenerated in conjunction with the operation of computer-based system 100(e.g., reports, communications, statistical analyses, automated letters,etc.). Finally, it should be noted that the optional printer and theoptional fax machine are merely representative of the many types ofperipherals that may be utilized in conjunction with computer-basedsystem 100. It is anticipated that other similar peripheral devices willbe deployed in the various preferred embodiment of the present inventionand no such device is excluded by its omission in FIG. 1.

Mobile communication device 190 is representative of any type ofcellular device, wi-fi or Internet enabled mobile communication devicethat may be communicatively coupled to computer-based system 100. Thisincludes, for example, personal digital assistants (“PDAs”), Windows®mobile phone devices, Android® OS devices, Palm® OS devices, PocketPC®devices, the Apple® iPod Touch®, the Apple® iPhone® and other varioustypes of smartphones and portable communication devices, includingtablets. Those skilled in the art will recognize these various devicesand others that are suitable for deployment as mobile communicationdevice 190. While somewhat less powerful than computers 170 and 180,mobile communication device 190 may also be configured to wirelesslycommunicate with data server 130 via network 120 to send and receivecommunications and data to and from data server 130. Given the standardfunctionality for devices that may be deployed as mobile communicationdevice 190, this communication capability be provided by a wirelessInternet connection (e.g. “wi-fi” or “wi-max”) or a Bluetooth®connection as well as LTE and other cellular data communicationnetworks.

Those skilled in the art will recognize that FIG. 1 depicts a fairlystandard “client/server” type communication arrangement where dataserver 130 is considered to be a server and computers 170 and 180 areconsidered to be clients of data server 130. Additionally, those skilledin the art will recognize that the functionality of data server 130 maybe deployed on either of computers systems 170 and 180 in a moretraditional “stand-alone” environment. In either case, the methods ofthe present invention are designed to minimize the amount of data thatneeds to be transferred from a database to the user of computer-basedsystem 100.

Referring now to FIG. 2, data server 130 of FIG. 1 in accordance with apreferred embodiment of the present invention represents one of manycommercially available computer systems and those skilled in the artwill appreciate that the methods and system of the present inventionapply equally to any computer system, regardless of the specificoperating system and regardless of whether the computer system is atraditional computer, a complicated multi-user computing device or asingle user device such as a personal computer or workstation.Additionally, as further described below, certain processing andinteraction may be performed using a web browser on the user's computeror workstation.

Data server 130 suitably comprises at least one Central Processing Unit(CPU) or processor 210, an auxiliary storage interface 240, a displayinterface 245, and a network interface 250, all of which areinterconnected via a system bus 260. Note that various modifications,additions, or deletions may be made to data server 130 illustrated inFIG. 2 within the scope of the present invention such as the addition ofcache memory or other peripheral devices. FIG. 2 is not intended to beexhaustive, but is presented to simply illustrate some of the moresalient features of data server 130.

Processor 210 performs computation and control functions of data server130, and most preferably comprises a suitable central processing unit(CPU). Processor 210 may comprise a single integrated circuit, such as amicroprocessor, or may comprise any suitable number of integratedcircuit devices and/or circuit boards working in cooperation toaccomplish the functions of a processor or CPU. Processor 210 isconfigured to execute one or more software programs contained withinmain memory 220. Although data server 130 depicted in FIG. 2 containsonly a single main processor 210 and a single bus 260, it should beunderstood that the present invention applies equally to computersystems having multiple processors and multiple system buses.

Auxiliary storage interface 240 allows data server 130 to store andretrieve information from auxiliary storage devices, such as externalstorage mechanism 270, magnetic disk drives (e.g., hard disks or floppydiskettes) or optical storage devices (e.g., CD-ROM). One suitablestorage device is a direct access storage device (DASD) 280. As shown inFIG. 2, DASD 280 may be a DVD or CD-ROM drive that may read programs anddata from a non-volatile DVD or CD disk 290.

Display interface 245 is used to directly connect one or more displays275 to data server 130. Displays 275 provide system administrators andusers the ability to communicate with data server 130. Additionally, incertain preferred embodiments, data server 130 may have an integrateddisplay 275.

Network interface 250 is used to connect data server 130 to network 120and computer-based system 100, including computer 170 and computer 180of FIG. 1. Network interface 250 broadly represents any suitable way tointerconnect electronic devices, regardless of whether the networkcomprises present day analog and/or digital techniques or via somenetworking mechanism of the future.

It is important to note that while the present invention has been (andwill continue to be) described in the context of a fully functionalcomputer system with certain application software, those skilled in theart will appreciate that the various software mechanisms of the presentinvention are capable of being distributed as a program product inconjunction with an article of manufacture comprising software stored ona computer readable storage medium in a variety of forms, and that thevarious preferred embodiments of the present invention applies equallyregardless of the particular type or storage medium used to actuallycarry out the distribution. Examples of computer readable storage mediainclude: non-volatile and non-transitory recordable type media such asDVD and CD ROMS disks (e.g., disk 290), and transmission type media suchas digital and analog communication links, including wirelesscommunication links.

Main memory 220 suitably contains an operating system 221, a web server222, one or more databases 223, a user interface 224, a groupingmechanism 225, a security mechanism 226, and one or more templates 227.The term “memory” as used herein refers to any storage location in thevirtual memory space of data server 130. While the present variousexamples of the present invention are directed towards keyword grouping,those skilled in the art will recognize that additional application ofthe principles presented herein are readily adaptable to other scenarioswhere a hierarchical display of items is useful and in situations wheregrouping blocks may be used (e.g., to order actions).

Operating system 221 includes the software that is used to operate andcontrol data server 130. In general, processor 210 typically executesoperating system 221. Operating system 221 may be a single program or,alternatively, a collection of multiple programs that act in concert toperform the functions of an operating system. Any operating system nowknown to those skilled in the art or later developed may be consideredfor inclusion with the various preferred embodiments of the presentinvention.

Web server 222 may be any web server application currently known orlater developed for communicating with web clients over a network suchas the Internet. Web server 222 provides access, including a userinterface, to allow individuals and entities to interact with graphicaluser interface 224, including via network 120 of FIG. 1.

Database 223 is representative of any suitable database known to thoseskilled in the art. In the most preferred embodiments of the presentinvention, database 223 will comprise a plurality of information thatmay be useful to an organization or individual that wants to provide forefficient and effective manipulation and display of data such askeywords in conjunction with a preferred embodiment of computer-basedsystem 100 of FIG. 1.

Graphical user interface 224 is a software component that provides theusers of computer-based system 100 of FIG. 1 a means for interactingwith the various components of computer-based system for transformingwebsite content for display on mobile devices. In at least some of themost preferred embodiments of the present invention, graphical userinterface 224 is a web browser based interface, accessible to the usersof computer-based system 100 via any standard web browser from anycomputer that is connected to the Internet. Additional details ongraphical user interface 224 are presented below.

Additionally, at least one preferred embodiment of the present inventioncomprises a graphical user interface deployed on a mobile communicationdevice 190. In this embodiment, a graphical user interface may beoffered via an “app” customized for mobile communication device 190 orvia a web browser based interface provides a connection to data server130, allowing the user of mobile communication device 190 to accessgrouping mechanism 225 and database 223 will be accessible andcustomizable via the graphical user interface provided in conjunctionwith mobile communication device 190.

Database 223 may also be used to store user data (e.g., user profilesand account information, website preferences, organization profiles,etc.) containing detailed information about each user or group of users,including user phone numbers, email addresses, permissions, home andwork addresses, etc.

Those skilled in the art will recognize that other types of informationfor other types of data that may be used in other applications (e.g.,historical, informational, technical, etc.) may be stored and retrievedas well. While database 223 is shown to be residing in main memory 220,it should be noted that database 223 might also be physically stored ina location other than main memory 220. For example, database 223 may bestored on external storage device 270 or DASD 280 and coupled to dataserver 130 via auxiliary storage I/F 240. Additionally, while shown as asingle database 223, those skilled in the art will recognize thatdatabase 223 may actually comprise a series of related databases,logically linked together. Depending on the specific application anddesign parameters, database 223 may take many different forms whenimplemented.

The most preferred embodiments of computer-based system 100 of FIG. 1will include a grouping mechanism 225 in main memory 220. Keywordmechanism 225 will generally comprise a series of task-oriented routines(e.g., website parsing tools, data and content transformation tools,etc.). Keyword mechanism 225 is an automated programmable system that iscapable of assisting users who access database 223 to manipulate anddisplay data such as keywords.

In the most preferred embodiments of the present invention, groupingmechanism 225 will be configured to identify and group keywords for usein Internet marketing, SEO and PPC processes. Keyword mechanism 225 maybe configured to operate programmatically or with the assistance of oneor more humans.

In addition, the most preferred embodiments of the present inventioncomprise security mechanism 226 for verifying access to the data andinformation contained in and transmitted to and from data server 130(e.g., user identity and authentication data, etc.). Security mechanism226 may be incorporated into operating system 221 and/or web server 222.Additionally, security mechanism 226 may also provide encryptioncapabilities for other components of computer-based system 100 of FIG.1, thereby enhancing the robustness of computer-based system 100 ofFIG. 1. Security mechanism 226 is most preferably configured to protectthe integrity and security of the information transmitted via network120 of FIG. 1.

Further, depending on the type and quantity of information stored indatabase 223 and accessed by graphical user interface 224, securitymechanism 226 may provide different levels of security and/or encryptionfor different computer systems 170 and 180 of FIG. 1 and the informationstored in database 223. In some preferred embodiments of the presentinvention, security mechanism 226 may be contained in or implemented inconjunction with certain hardware components (not shown this FIG.) suchas hardware-based firewalls, switches, dongles, and the like.

Templates 227 are typically user-developed components that are used todevelop and save unique keyword research that can automate the processof manipulating and displaying data. For example, a user may wish toperform keyword research on a repetitive basis. The user can create andsave a “template” using the results from a previously generated researcheffort. The saved template may be associated with keyword researchprojects they are doing for one or more websites. Since many Internetmarketing agencies have multiple clients and those clients can havemultiple websites, the use of templates can be very useful.Additionally, the user can use a site management page to includetemplates in folders that contain keyword projects generally forspecific websites. Templates 227 may be stored as part of database 223.

Projects 228 are typically user developed components that may be used todevelop and save keyword research projects and related data. Forexample, a user may wish to perform keyword research for a particularsite on multiple occasions. Additionally, a user can track the progressof the marketing campaign over time and the user will need to view theproject at a later time and view updated data if it is available. Theuser can create and save a “project.” Additionally, the user can use asite management page to include projects in folders for specificwebsites. Projects 228 may be stored as part of database 223.

Referring now to FIG. 3, a user interface 300 for use in manipulatingand displaying data in accordance with a preferred exemplary embodimentof the present invention is depicted. As shown in FIG. 3, a series ofnested “L” shaped grouping blocks 301, 302, 303, 304, and 305 aredisplayed to a user as well as several rectangular “horizontal only”grouping blocks such as 306 and 307 and a “vertical only” grouping block308. Each grouping block indicates a specific set or subset of items orkeywords (located to the right of the block) that have been groupedtogether (for example the items in the Keyword column), eitherprogrammatically or manually or a combination of programmatically andmanually with user intervention. For convenience the diagram numbers301, 302, 303, 304, 305, 306, 307, and 308 correspond to numbers inother diagrams as 502, 503, 504, 505, 506, 507, and 508, respectively(with the omission of a corresponding block for 301 due to spacelimitations in the diagram) respectively.

The keywords within the scope of each grouping block typically have beenidentified based on multiple factors and from multiple sources such asexternal keyword data sources available via API, import using CSV, copyand paste into a textbox in the application, or by the user entering oneor more initial “seed” keywords where for each the systems calls out toan external data source via API or pulls related keywords from itsinternal database. After system 100 of FIG. 1 has gathered relatedkeywords, the related keywords (which can include one or more of theinitial seed keywords) are displayed in user interface 300.

In addition to the grouping blocks, a series of horizontal rows andvertical columns are displayed. Each horizontal group row contains oneor more keywords that have been grouped together, representing a groupof keywords that could be targeted on a single webpage to provideInternet search engine traffic to that webpage, based on the keywords.Each group row can contain subrows or “item” rows, each containing oneitem such as a keyword. Each vertical column is titled and will containthe labeled information. If a column measures data about individualkeywords then it will contain a value in the item row. If the columndisplays data about a group it will contain a data value in a cell largeenough to span the height of the group row and not just an item row.

Each grouping block has “area” (unlike a line) and this allows it todisplay information and provide user controls within the area of theblock about the information it groups.

Information such as a word, phrase, or other textual information thatindicates the type of information contained in that group can bedisplayed within the area of the block. This makes it easy for the userto quickly understand what information is contained in the group and howthat group relates to other groups. Grouping blocks not only groupkeywords but other grouping blocks to reveal the hierarchicalrelationship between groups.

In addition, summary or aggregate information relating to the keywordsin a group can be displayed within the area of the block 880 and 892.Two types of aggregate data are displayed: 1) aggregate informationrelating to an item group (horizontal leg) 880 and 2) aggregateinformation about all keywords within the scope of a larger groupingblock including all of its subgroups 892. Typical aggregate informationincludes the sum of all search volume of the keywords in an item groupand the sum of all search volume of the keywords within the scope of theentire block including all subgroups.

Grouping blocks not only display the relationships between informationbut offer the user functionality to perform their work. Functionality isbuilt into the grouping blocks such as user controllers that allow theuser to modify the default grouping block display so as to fine tune theresults for each specific project. For example, the user can add ordelete keywords to groups and the grouping blocks change dimensions toaccommodate the addition or deletion. The configuration of the groupingblock also makes it easy for the user to select a grouping block andmove it (e.g., use a mouse to click and drag) or combine it with othergroups.

When a keyword is manually moved from one grouping block's scope toanother's, the receiving grouping block's dimensions will adjust toaccommodate the moved item row containing the keyword and all of itsassociated data.

When two grouping blocks are combined, the dimensions of the receivingblock will change to accommodate moved item rows. Additionally, when onegrouping block is combined with another grouping block, the definingterms in the group's rule in the upper left corner are also combined andwill be viewed as an equivalent (e.g., “car”=“automobile” if the usercombined a grouping block where “car” was the defining term and a secondgrouping block where “automobile” was the defining term).

As seen in FIG. 5 the figure is the fact that all keywords are displayedin a single left aligned list 522 while still being grouped by thegrouping blocks in a way that allows a user to easily understand therelationship between groups (i.e. the words are grouped visually in ahierarchical manner while still in a single vertical list).

Seed keyword box 550: Where user enters one or more keyword phrases tobe used as input for pulling related keywords from the keyword datasource (either an API or database) (e.g., “car insurance”).

A user interface element such as a button 551 initiate the retrieval ofkeywords based on the seed and retrieval of keywords from other internaland external data sources. System 100 may also be configured to beginretrieval based on a keystroke or keystroke combination (e.g., pressingthe “enter” key).

A user interface element including an equivalent terms input box 552that allows the user to indicate equivalent terms to be used by thegrouping algorithm. For example [“car”=“auto”=“automobile”] would treateach of these words as equivalent and the grouping algorithm would treatthem as if they were the same word when applying grouping rules.

A user interface element including a required terms input box 553 thatspecifies one or more words that must appear in each keyword phrase inthe list. Ex. “insurance” would ensure that all keyword phrases had thisword. This functions as a filter. If the user removes a word from theRequired terms box and presses the Go button the keyword column listwould no longer be constrained to display only keyword phrases thatcontain at least one of the words entered into the Required terms box.

A user interface element for indicating words that should be used as abasis for excluding keywords from the resulting list. The Excluded termsterms input box 554 allows the user to eliminate keyword phrases fromthe list that contain at least one of the indicated words. For example,entering the word “truck” would ensure that no keyword phrase includingthe word “truck,” such as “truck insurance,” would appear in the keywordcolumn list. This functions as a filter. If the user removes a word fromthe Excluded terms box and presses the Go button the keyword column listwould contain the previously excluded phrases.

Other such user interface elements may be included such as (NotIllustrated): “brand input box” that allows the user to enter words thatrepresent their company. For example, if the company name is “Joe'sCookies,” then “joe” could be entered into the brand input box toeliminate any keywords from the keyword list containing “joe” or togroup them separately. Similarly, a “competitor input box” that allowsthe user to enter words that represent their competitors. For example ifthe company has a primary competitor “Fred's Biscuits” then the usercould enter “fred,” to eliminate any keyword phrase with this term orgroup those terms separately.

“Stop words” configuration—Allows the user to enter words that they wantignored during grouping since they do not affect the meaning of thekeyword phrase. For example, words like “of”, “a”, “in” do not typicallychange the meaning of the words in a keyword phrase. For example “carinsurance phoenix” and “car insurance in phoenix” mean the same thingand should be in the same group. The system has a default list of stopwords built in but the user can override the list.

Data grid contains a keyword list that contains keywords groupedtogether 522. All keywords are left aligned. The groupings are eitherdetermined by the grouping algorithm, the user or a combination of thetwo. The data grid also contains data associated with each keyword,group or targeted page.

As seen in FIG. 14 the data grid can contain keyword level data that isindependent of a specific website 520, 518, 512. For example, dataassociated with each keyword such as known search volume in Googleorganic search 520, Average Cost per Click in Google® Adwords® 518 orcompetition level measured by a third party API or internal calculation512. This information is independent of the particular site beingoptimized.

Data grid can also contain data regarding which data sources the keywordwas discovered in.<add numbering; add source column to diagram>

Data grid can contain keyword level data for individual website underconsideration. For example, the data grid can also include the keywordranking position of the specified website 516 in one or more specifiedsearch engines (such as Google or Bing).

Data grid contains grouped items (keywords) 510 that are visuallygrouped together by the horizontal leg of a grouping block.

As seen in FIG. 12, the invention includes a toolbar (and optionally amenu) to allow for operations to be performed on the project'sinformation or display in the user interface.

UI contains controller to undo or redo 1220 one or more user actions.

UI contains controller to set project level settings 1230. These includesetting the project's name, target domain (used during rank checking andother domain level operations), integration settings for third partyAPIs such as Google Webmaster Tools, Google Analytics, SEMRush. OtherAPIs can be integrated as desired.

In the project settings the user has the ability to control how muchdata is retrieved from each resource. These include limiting the numberof keywords returned for each seed entered and limiting the number ofkeywords returned from a third party API. Additionally, the user has theability to turn on or off the pulling of data for a data source or partof a data source. For example, a user may wish to pull traffic data fromGoogle Analytics but not keywords.

In the project settings the user has the ability to enter the domains ofother sites and have keywords and other associated information pulledin. This information can be obtained by third party APIs or an in housedatabase.

In the project settings the user has the ability to toggle on or off thesynonym generation functionality. If the user turns on thisfunctionality then seeds entered are first processed through softwarethat generates synonyms of the seeds and then passes those synonyms andthe user entered seeds to the processing system that generates thekeyword recommendations list. We call this functionality the SynonymEngine™. The synonyms generated are “entity equivalents” meaning thatthey represent the same concept exactly. For example entering “pooltable” would generate the synonym “billiard table”, “billiard tables”since they mean the same thing as “pool table.”

The project settings contain the ability to enable the user to ensurethat imported keywords are inserted into the project so that thekeywords are visible in the UI. Since the system can be configure toonly display say the top 200 groups some imported keywords might beplaced in groups that are outside of this range. Enabling this featureensures that the keywords and groups they are in are displayed in theUI.

UI contains a controller to allow the user to manually type or paste alist of keywords for import 1240. Additional information associated withthe list as a whole or the individual keywords can be included.

UI contains a controller to allow the user to import keywords using acommon file format like CSV 1250. The file is structured so that itincludes all information required to load a previously exported projectthus restoring the complete project including all seed keywords,Equivalent terms, required terms, excluded terms, grouping hierarchy,keywords and all data associated with keywords or groups.

The import system is flexible enough to allow the user to simply importa subset of the total data. For example the user can import a listcontaining just keywords and the systems will import them and performappropriate processing based on project settings such as grouping thekeywords and pulling data associated with them into the project. Anysubset of the full data set that can be imported may be imported. Useror system settings will determine what processing occur during import.For example, if the user imports simply a list of keywords they systemcan be configured to automatically pull volume and cpc values. Or if theimport contains these values already then the system does not overwritethem.

The import system also can import CSV files containing a structure thatis the result of export from a third party tool such as Google KeywordPlanner.

UI contains a controller to allow the user to export data 1260. The usercan export the entire project. The output is stored in a format such asCSV or other custom format. The configuration of the export file is suchto allow the user to reimport the exported file and have the projectfully restored. The format of the export is flexible enough to allow theuser to edit the file before importing it. The system also allows theuser to just export the portion of the project that is loaded in thecurrent view in the UI. For example, if the user is viewing the “white”color tag view of the project then the user can export the currentview's data.

FIG. 37 displays a UI controller 3700 to select a color tagged view ofthe project. Since user's can tag groups and keywords the user will wantto limit the view to view groups or keywords tagged in various ways. Forexample the user may want to view just the “white” tagged groups. Theuser can select from the menu “white” (3740) and only keywords and/orgroups tagged as white would display in the UI. The user can select“black” (3710) to view keywords that have been removed from the project,or “gray” (3720) to view keywords and groups that are in their defaultstate. The tagging system is flexible and can allow for custom tags andmultiple tags to be applied to individual groups or keywords. Inaddition to viewing just a particular “color” view, the user can viewthe full list of keywords (3750) or the keywords that have not beentagged “black” (3760). Note that that these controllers are depending onthe current systems configuration regarding the number of items to beloaded in the browser at one time. For example, if only the top 200groups by volume are loaded in the browser then the color tag viewcontroller (3700) displays only those items. The user needs to configurethe system differently if they wish the result to calculate based on allkeywords in the project.

UI contains a controller to allow the user to load additional groups inthe display that are not loaded 1280. Since the system can be configureto display a subset of the data such as the top 200 groups by volume theuser has a controller to load additional groups. For example the usercan request to load the next 50 groups by volume or whatever otheravailable parameters are configure at the time.

UI contains a controller to allow the user to display or hide columns inthe grid 1291.

UI contains a controller to allow the user to toggle on or off the “highlevel view” 1290. See FIG. 48 for an example.

UI contains a controller to allow the user to pull on demand data forthe entire project or current view 1292. For example the user can pullrankings for all keywords in the project or in the current view. Anydata available in the grid that can be pulled for a keyword, group orblock can be pulled at the project or view levels.

UI contains a controller to allow the user to recalculate the hierarchy1292.

UI contains a controller that displays information about the number ofkeywords in the project and number of keywords loaded in the browser.Optionally this can be configured to show the number of keywordsdisplayed in the browser (not necessarily the same as the numberloaded), the number of groups in the project, the number of groupsloaded or displayed in the browser.

UI contains a controller that allows the user to toggle on or off thedisplay of “subpage groups” 1294. These are the rectangles that aredisplayed inside of the standard grouping blocks that are created incertain circumstances when two groups are combined.

UI contains controller to navigate to other areas of the tool such as toselect a project, check usage limits for data, clear the current projectso that it is in the state of a brand new project, upgrade or downgradecurrent subscription level, change password or sign out of theapplication 514 to work on.

The most preferred embodiments of the present invention comprise a userinterface (“UP”) that displays a visual representation of thehierarchical relationship between groups 528.

In the most preferred embodiments of the present invention, a gridcontains page level (or group level) information for individual websiteunder consideration (see FIG. 14). For example, the data grid can alsoinclude the number of visits 1420 from search engines to a specificwebpage 1410 of the website under consideration. As another example, ametric that measures the strength of the webpage as measured by waysthat are known to those experienced in SEO utilize 1430. These valuesrelate to a page (URL) 1420 as a whole and not any specific keyword.

Data grid can display miscellaneous user defined or system defined grouplevel information in a column in a similar way to the way the number oforganic visits to a page is displayed.

In addition to the automatically calculated display of grouping blocks,the user may adjust the display as necessary or desired for moreeffective and efficient processing. Manual changes to groups and griddata include at least the following capabilities:

Manually move a keyword 1030—A user can click and drag a keyword fromone group to another.

Referring now to FIG. 21, FIG. 22, FIG. 23, FIG. 24, FIG. 25, FIG. 26,FIG. 27, FIG. 28, FIG. 29, and FIG. 30, the most preferred embodimentsof the present invention allow a user to manually combine groups by dragand drop.

Keyword delete button 1010—Each item row for each keyword will have abutton that when clicked will remove the keyword from the list. Whendeleted the keywords will be tagged as “black” using the color taggingsystem. The system will also provide users with the option of deletingthe keywords permanently from the project.

Each grouping block will have two delete buttons 870 and 893. The onelocated on the horizontal leg will remove the horizontal leg of thegrouping block and all of its associated keywords and data in that row.The one on the vertical leg will remove the entire block including allkeywords and subgroups within its scope. These functions are alsoavailable by contextual menu or keyboard shortcut or “delete key.”

Sort functionality at the group level FIG. 16—Functionality to allow auser to sort and/or filter the data in that group by any column metricor combination of metrics. This same functionality is available at thetop of the entire table of data to sort and filter the entire project'sdata or a subset of the data such as what is currently viewed in thebrowser or based on user or system defined parameters.

Page and Group level keyword recommendation generation interfaceelements 910, 920—Users may want to generate more keywords forindividual groups or all subgroups (including the parent group) of agiven group (similar to the way a seed keyword is used to generate theoriginal keyword list). To accommodate this each grouping block can havetwo buttons. The first interface element 910 when clicked will allow theuser to enter a seed keyword to populate a particular group withadditional keywords. The second interface element 920 when clickedallows the user to enter a seed keyword to populate the group and allsubgroups with additional keywords. There is also a way to indicate tothe software that the user is done entering the seed keyword and wantsthe software to perform the action of adding the additional keywords tothe group or groups such as pressing the Enter key or clicking a button.This method can also be used on empty blocks that the user has createdand that they want to populate with keywords and data.

Manually add a keyword to group 1020, 1110—The user can manually createa new item row in a group and enter a keyword. A button will be providedwhen the user places the mouse at a location where a keyword can beinserted (or another mechanism such as a contextual menu will beprovided). This function also allows the user to add a word to a groupthat is already in another group. Although the default algorithm groupskeywords into mutually exclusive groups there are times where a user mayneed to optimize two pages for the same term.

Button 1210 is a user interface element that allows the user to savecurrent state of the data in the display.

Column in grid to represent the URL of the page the user wishes totarget the keyword group to 1420. This URL can be manually added by theuser or an algorithm can suggest the URL contained on the site enteredin the “domain” setting in the project settings.

Other Grid Data

Each item row can display a keyword optimization score for each keyword1710. This value indicates how well the page at the indicated url isoptimized for each keyword listed in the group. This value is on theitem row for each keyword. This is accomplished when an algorithmanalyzes content and meta data of the page on the website identified byindicated page url to determine how well optimized the page is for eachof the keywords in the group. Each keyword is scored individually. Thescore may be a letter grade or numerical score. This allows the user tosee, at a glance, the relative on-page SEO optimization for a given setof keywords assigned to a given page. Additionally, the user mayestablish a minimum threshold to ensure a baseline level of SEO success.By adjusting the groupings and keywords within the groupings, the usercan try to maximize the SEO ranking for a page. System 100 may beprogrammed to automatically make adjustments until the SEO score meetsor exceeds the user configurable threshold.

Each item row can display the sources of the row item 1720 (i.e. datasource or sources where that item/keyword was found). For example if akeyword such as “insurance” was imported into the system manual theletter “I” could be indicated to mean “imported.” If the keyword alsoappears in the Google Webmaster Tools data pulled in the letters GWTcould display, if the keyword is also in databases containinginformation about two competitors C1 and C2 could be displayedrepresenting the two competitors in the order they were entered into thesystem. This information helps the user determine the value of eachkeyword and whether they wish to include it in their strategy at thepresent time. These abbreviations are either system defined or userdefined or a combination of the two.

In at least some preferred embodiments of the present invention, theuser interface may also provide an interface element for the user totoggle the functionality of the “delete” keyword buttons into “keep”keyword buttons in any page group or larger group. This may particularlyuseful if there are only a few of the keywords listed in a group thatthe user wants to keep.

User controls at various levels of the grouping block hierarchy and datagrid are available to make interacting with the UI easy, intuitive andhighly productive. For example, cell controls interface elements (e.g.,buttons or contextual menus) may be included to allow control withinindividual grid cells such as the one containing a keyword there will becontrols to allow a user to delete, add, etc. the data in that cell. Inyet another example, the user may use the keyword in the cell as a seedfor a group it belongs to. Another example, is right-clicking a cell inthe ranking column and selecting from a context menu a command toinitiate an on-demand rank check for the keyword.

The item row controls shown in FIG. 10 may be used for interacting withindividual rows such as those containing individual keywords. Availablecontrols include a delete button 1010 that serves to remove the keywordfrom the group, a controller for inserting a keyword into a group 1020,a controller for dragging and dropping a row into another group 1030.Also available to an individual row is a context menu that allows theuser to perform operations on that row such as checking the targetsite's ranking for the keyword or requesting a metric representing thedifficulty of ranking for that keyword. Any metric or data that can bedisplayed in the row can be requested via context menu. In generalcontrollers, widgets or icons or displayed information on an individualrow control or represent information for a group defined by that row. Acontext menu available by right-clicking the row constrains its functionto the information or functions available for that row. When a row isclicked it is highlighted so that it is clear to the user that it hasbeen selected.

As seen in FIG. 8, group row controls (860, 870, 880, 895) lie on thehorizontal leg and affect item rows within a group row. Just like thefunctionality available to the individual keyword row such as requestingrankings the same functions can be performed at the group level for allof the keywords in that group at the same time. Functions can beperformed with available widgets on the horizontal leg of the groupingblock or via context menu. For example, the user can initiate rankchecking for all of the keywords in the group Also, populatingadditional keywords 910 to the item group by entering a seed or checkingrankings for all keywords in the page group. Button or contextual menuas appropriate. A color tag controller is also available on the grouplevel 860. In general controllers, widgets or icons or displayedinformation on the horizontal leg control or represent information for agroup defined by the horizontal leg. A context menu available byright-clicking the horizontal leg constrains its function to theinformation or functions available for items within the scope of thathorizontal leg. A function is available, via context menu for example,that allows the user to enter the defining term represented by thatcurrent blocks defining term into the “Excluded terms” box. Each rowitem, such as a keyword, can contain data associated with the item. Thisinformation is displayed in the table's columns. Not all controllersdisplay at all times on a grouping block. For example, when a userhovers the mouse over the block certain controllers become visible suchas the delete buttons and the widgets that allow the creation ofhorizontal and vertical legs. When a horizontal leg is clicked it andall of the information in the grid to its right is also highlighted sothat it is clear to the user what information has been selected.

As seen in FIG. 8, group block controls 890, 893 lie on the left side ofthe block to indicate that they are associated with the vertical leg. Atthe block level there are controls analogous to those for the group rowcontrols (horizontal leg controls) are available at the block level. Thedifference is that these perform their function on all informationwithin their scope which is the entire block. This includes a contextualmenu affecting all item rows and group rows falling within the scope ofthe grouping block that currently has the focus. Also, contains acontrol for adding additional keywords to the entire group 920 and allsubgroups or checking rankings for all keywords within the scope of thegroup. If the block is a “vertical leg only” block then there is afunction available via context menu for example that adds a horizontalleg to the current vertical only leg. If the block is an L-block thenthere are separate controllers on each leg. Those controls on thehorizontal leg affect items associated with the horizontal leg. Thosecontrols on the vertical leg affect items within the scope of the entireblock including all subgroups and the horizontal leg.

For example, this information can contain summary information such asthe total search volume for the keywords within the scope of thathorizontal leg. The type of information need not be limited to summaryinformation. This information can be system defined or user defined. Theblock will display as many lines of this information as will fit in thevisible part of the horizontal leg. Hovering the cursor over thisinformation will reveal a popup that displays all of the informationincluding any that was out of view. Similarly, hovering the cursor overthe defining term will reveal a popup displaying it in its entirety.This is useful if the defining term is very long is truncated. If theuser A horizontal leg (whether “horizontal only” or part of an L-blockdisplays metrics associated with the information within the scope of thehorizontal leg. The vertical leg contains information and controlsanalogous to the horizontal leg but reflect the scope that the entireblock encompasses. Each grouping block regardless of its type candisplay a controller that can load additional keywords that are alreadyin the project but not yet loaded in the browser.

This controller also has a number next to it that displays how manysubgroups that are not yet loaded exist for this group. The user can usethis controller to load some or all of these subgroups. Every block isat a particular level in the hierarchy. As a convenience to the userthere is a controller that allows all blocks at a particular level to becollapsed so that only a horizontal leg is visible. This is availablethrough a context menu. Since grouping blocks can be moved to changetheir precedence in the hierarchy a controller is available to move themhigher in the hierarchy by using the context menus as opposed to usingthe drag and drop functionality. When a vertical leg is clicked it andall of the information within its scope including the horizontal leg ifthere is one and all subgroups within its scope is highlighted so thatit is clear to the user what information has been selected.

Grouping blocks are not limited to use only with keywords. They aregeneral purpose grouping and hierarchy management tools. As such thegrouped items can be an informational construct such as those used inthe medical industry, construction industry, financial industry or andother use where grouping information particularly grouping hierarchicalinformation can be utilized. This means that the controllers anddisplayed information for these groups will be significantly differentfrom those for keyword research. In any event, the principle that rowsrepresent items with their associated data, horizontal legs representgroups of items, and blocks represent groups of groups of informationwill remain. This means that the controllers will perform differentfunctions than depicted here but functions available at a row level willaffect only elements in the row, that items within the scope of ahorizontal leg will be affected by controllers associated with thehorizontal leg and controllers associated with the entire block, andgenerally displayed on the vertical leg, will affect the entire blockincluding any horizontal leg and all of the subgroups within the scopeof the block.

Since grouping blocks are ultimately general purpose they need not onlyrepresent concretes like keywords, or shoes. But can represent thegrouping and hierarchy inherent in processes. If multiple processes mustper performed at the same time or must start or complete at the sametime grouping blocks can be used to represent the process. Sincegrouping block do not simply present information but are tools forinteracting with that information grouping blocks can be used fordriving and managing processes much the same what that projectmanagement software is used. In particular, grouping blocks can bedeployed in a similar fashion to Gantt charts. But grouping blocks haveparticular advantages over Gantt charts in that Gantt charts don'tinvolve vertical rectangles, only horizontal rectangles. This means thatGantt charts do not make is easy to perceptually see what depends onwhat or what processes must start after others. The grouping block'svertical leg can provide a more definitive visual cue where processesstart and stop and showing what processes are contained within otherprocesses or before or after other processes. In this scenario thegrouping block could have multiple types of vertical legs. A verticalleg could be upward instead of down as used in our keyword researchscenario. Grouping blocks could have multiple simultaneous vertical legsboth up and down. And the blocks can have controllers that perform onthe items within the scope of each type of leg to help the user do theirwork.

Referring now to FIG. 59. This is an example of grouping blocks used togroup types of object found in a home. The grouped items are listed inthe far right column which includes “table”, “chair”, etc. The groups tothe left of this list are the grouping blocks. So the category groupingblock with defining term “furniture” has three items in its group namely“table, “chair”, “couch.” Notice in this example only “vertical only”and “horizontal only” grouping blocks are used. There is no need for anL-block in this case. The reason for this is that in the real world onlyphysical objects exist. For example, the concept “chair” is a firstlevel concept because it refers to an existent (a thing that exists)namely a chair. Chairs actually physically exist in the world and youcan point to one. But higher level concepts such as furniture do notdirectly refer to things in the world. They refer to other concepts. Soin the case of the concept “furniture” there is no generalized“furniture” object in the world. There are tables and chairs but nostandalone “furniture” objects. That is why there is no L-block in thisexample. Alternatively, although there is no real world construct thatis “furniture” the business owner could have a room dedicated todisplaying the furniture. The diagram could be updated to include anL-block with the horizontal leg designating that room. For each room thediagram could use an L-block in a similar manner.

Referring now to FIG. 60. This is an example of grouping blocks used togroup types of spiders in the field of arachnology, the scientific studyof spiders. In this example only vertical only and horizontal onlygrouping blocks are used. The reason that no L-block is needed is forthe same reason as in the furniture example.

For each of these cases specialists in these areas would have need formanipulating this grouped hierarchical information in ways that areappropriate to their fields. A household goods store would have needsfor manipulating their inventory based on categories that could bemanaged by grouping block based user interface controllers. They coulddisplay specialized data within the blocks to show total units on handin much the same way that for keyword research total search volume wasdisplayed within the grouping block. Any metrics that make sense tothose in the field could be displayed within the grouping block.Additionally controls could be added to the block to allow users tomanipulate the data or perform specialized functions to items within thescope of blocks. For example, a homegoods store owner could click acontroller on a block to initiate an inventory check on all items listedin the group. Additionally standard grouping block functions likemoving, combining, deleting them, etc. could be made available to theuser.

Similarly, scientists may also have specific information they would finduseful displayed in the vertical and horizontal legs of the groupingblocks as well as specialized functions that the grouping blocks shouldperform.

Referring now to FIG. 61. Grouping blocks are not just limited tocategory and semantic groupings. They can be used to group processes.FIG. 61 shows an example use in the area of Internet marketing. InInternet marketing there are many tasks that must be performed during amarketing campaign. Often these tasks are time dependent on one another.The placement of an article on a web site that is to link to a pressrelease on another website cannot be placed live on the site until thepress release is live on the press release site. This relationship canbe displayed using L-blocks (6100) with the placement article containingthe link (6120) as a subgroup of the task of getting the press releaselive (6110). If the Internet marketer then wants to coordinate multiplepeople who will then go to the article and place comments (6130)(6140)on the article page plus have a person comment on a forum (6150) with alink to the article then these tasks are subtasks of the articleplacement since they can't be performed until the article is live. Thistype of time depended relationship is very difficult to visuallyinterpret by users using conventional visual tools for displaying timedependent relationships such as Gantt charts. The vertical leg of thegrouping block makes it easy for users to instantly perceive the timedependent nature of the tasks.

Just as in other scenarios listed here the grouping blocks can bothdisplay relevant information to the users within the area of the blockas well as provide tools through visible widgets on the blocks orthrough a context menu or other UI controllers. Automatic processes canalso manage these blocks based on system defined or user defined rules.As with other grouping blocks a full complement of tool can be madeavailable such as collapsing grouping blocks, combining, moving,deleting, etc.

System 100 comprises standard user management functionality that willalso be accessible via user interface 300.

Referring now to FIG. 4, a flow chart for a method 400 for in accordancewith a preferred exemplary embodiment of the present invention isdepicted. As shown in FIG. 4, a user will invoke a user interface (step410) to begin interaction with system 100 of FIG. 1. Those skilled inthe art will recognize that the various steps show in FIG. 4 are notnecessarily conducted in the exact sequence shown and other sequencesmay be readily adapted to accomplish the objectives a given campaign orapplication of grouping as set forth herein. For example, theequivalency, negative terms, and required terms very often might beentered at the same time the seed is entered.

The user will initiate the input of keywords into the system. The systemis design to take input of keywords from many sources including pullingfrom third party APIs, the system's internal database, externaldatabases, manual import directly into the system by the user using avariety of methods.

In the case where the user identifies one or more seed keywords ofinterest and input the keyword(s) into the appropriate user interfaceelement as described in FIG. 3 (step 420) and the algorithm associatedwith system 100 will fetch and return a set of related keywords (step430). As previously explained, the related keywords may be obtained fromany viable source, including external databases offered by variouscommercial providers as well as other sources, including a database ofpreviously created search results or any combination thereof.

System 100 will then group and display the keywords that where inputinto the system through the multiple ways available in the userinterface, as shown in FIG. 3 (step 440 and step 450). The keywords areinitially displayed in a hierarchical grouping determined by thealgorithm associated with grouping mechanism of FIG. 2. As shown in FIG.3, each grouping may contain multiple subgroupings. In general, thesmallest grouping displayed to the user will represent a single page ofa website when the invention is used for keyword research. Since all ofthe keywords in this group are very similar, it will generally makesense to target these related keywords on the same page of the targetwebsite.

The user will then have the option of adjusting the default groupdisplay (step 455) by adjusting the default groupings and subgroupingsand/or adjusting the default sort order. The user can manually adjustthe groupings in at least these ways:

The user may define word equivalency instructions as part of userinterface 300. There is one of these boxes on the left side of theinterface (e.g., “car”=“auto”=“automobile”). Additionally, the user candecide whether or not to treat singular and plural versions of a word asconsidered equivalent.

Negative terms: User enters words that must not be in any keyworddisplayed. The keyword list is updated displaying only keywords that donot include the user entered “negative” terms. The grouping blocks arereconfigured and redisplayed to reflect the changes.

Required terms: User enters keywords that must be in all keywordphrases. The display updates.

Next, the User may optionally choose to manually drag an individualkeyword phrase from one group to another. This word should stay in thegroup it is dropped into even if some of the groups are auto updatedwhen a user enters new seed keywords. The user may also optionally choseto manually drag a group onto another group to combine them. Click agrouping block and drag onto another one. (Step 470).

User adds or deletes keywords in the seed list. If the user has notsaved then the whole display recalculates. If the user has saved, thenentering new seeds adds new keywords among the existing saved keywords.

Delete groupings and associated keywords from the display. Two levels ofdelete may be selected by the user: 1) Never show this again; and 2)keep available for potential later use. User interface 300 will make iteasy to view keywords of the second type and make it harder to viewkeywords that have been placed in first type (e.g., more steps to locateand placed on submenus, etc.). In this fashion, screen real estate canbe used to make the search and review process more efficient.

Use seed entry textbox for keyword generation at the item group level910. User clicks a button on a grouping block to populate additionalkeywords to the “page” level group. This process can also be initiatedby contextual menu. Alternatively, the user can elect to use one or moreof the keywords already in the group as a seed. Those skilled in the artwill recognize the time saving advantages and ease of use by a systemthat allows users to initiate additional keyword discovery at the grouplevel “inline” in the UI and not having to change screens.

In at least one preferred embodiment of the present invention, a usermay use seed entry textbox for keyword generation at any group level920. User clicks a button on grouping block 920 (a different button thanthat for seed entry for the item group level) allowing the user to entera seed keyword to populate additional keywords to the entire groupincluding all subgroups. This process can also be initiated bycontextual menu. Alternatively, the user can elect to use one or more ofthe keywords already in the group as a seed. Those skilled in the artwill recognize the time saving advantages and ease of use by a systemthat allows users to initiate additional keyword discovery at the grouplevel “inline” in the UI and not having to change screens.

Manually add an empty group (e.g., a grouping block with no items). Thiscould be performed by right clicking on an existing grouping block toinsert above the current block, or a + icon could appear when you hoverover the line between two grouping blocks. If there are no groupingblocks in the display then the user can add a grouping block by using acontextual menu available by right clicking on the background (canvas).

The user may also choose to alter the default sort order. In general,the default will be to sort the relevant keywords by volume, from highto low. However, the user may wish to alter this and choose to alter thesearch and sort functions for various displays of the relevant keywords.

If the user chooses to make any of these adjustments (step 455=“YES”)then the user interface will continually present an updated display ofthe keywords by regrouping the keywords (step 440) and displaying thekeyword groupings (step 450). If the user elects not to adjust thedefault group display (step 455=“NO”), then the user may continue tointeract with System 100 and identify one or more keywords for searchingas before (step 420).

Referring now to FIG. 18, a schematic diagram illustrating a userinterface element 1800 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 18, an alternate version of ahierarchy controller in accordance with a preferred embodiment of thepresent invention is displayed. This version embodies many of thefeatures that make grouping blocks so useful yet display the hierarchyUI controllers with lines instead of blocks including: allowing allitems to remain left aligned in a single list while provide providingfunctionality such as collapsibility. This version uses lines instead ofblocks for illustrating and manipulating the hierarchy. Each horizontalline is at the top (or middle) of each group and goes through thedefining term of the group if there is one.

Referring now to FIG. 6, a schematic diagram illustrating a userinterface element 600 for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention isdepicted. As shown in FIG. 6, an alternate version of the grouping blockhierarchy controller is depicted.

Referring now to FIG. 7, a schematic diagram illustrating an alternativeuser interface element 700 for manipulating and displaying. As shown inFIG. 7, an alternate version of the grouping block hierarchy controller.This version is similar the version seen in FIG. 6 except in thisversion there are no visible horizontal connectors at the top of eachgroup. The group is most preferably indicated by a vertical line thatturns to the right to indicate the bottom of the group.

The hierarchy controllers illustrated in FIG. 6 and FIG. 7 have manyusability differences when compared the “block” style FIG. 3 or even theline style in FIG. 18. One of those differences is that some users mayfind it visually more difficult to visualize the groups at the samelevel in the hierarchy. A solution to this problem is to optionallyintroduce vertical lines (or shaded areas) behind the hierarchycontrollers create vertical columns or “swim lanes” to help the uservisualize how many levels down a particular level is in the hierarchy.

Referring now to FIG. 8, a schematic diagram illustrating a userinterface element 800 for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention isdepicted. As shown in FIG. 8, the UI displays the defining term (810),provides a widget to collapse the vertical leg of a block to hide all ofthe block's subgroups (820), number displaying the number of not yetdisplayed subgroups that are subgroups in the scope of this block (830),widget to display the not yet displayed subgroups (840), widget tomanually insert a grouping block to the left of the current block (850),“color tag” widget on the horizontal leg that user clicks to indicatetheir interest in targeting the group defined by the horizontal leg(860), delete group widget that deletes the horizontal leg and it'sgroup (870), summary metrics (880) that summarize data in the tablecolumns such as providing total search volume for the group and averageCPC, analogous vertical leg widgets (890)(892)(893) clicking the colortag on the vertical leg (890) changes all subgroup color tags to thesame color (user can manually change individual subgroup color tags atanytime), delete entire block widget (893), summary metrics on thevertical leg (892) summarize the table data for the table data withinthe entire block's scope, context menu available by right-clicking onthe horizontal leg (895) (the vertical leg also has a context menu (notpictured). Context menu provides functions that apply within thehorizontal leg's scope if using the context menu on the horizontal legor functions applicable to the entire block if using the context menuavailable on the vertical leg. User can click the right leg (896) todrag it as well as click the vertical leg (896) to drag the entireblock.

a method such as a grabber hand 830 to drag grouping blocks, and twobuttons used to make available textboxes used to enter seed keywords forpage level 810 or block level 840 keyword (item) discovery. Groupingblocks also contain a “color tag” widget, “load subgroup” widget andvarious context menu functions as explained elsewhere in this document.

Referring now to FIG. 9, a schematic diagram illustrating a userinterface element 900 for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention isdepicted. In addition to the method previously described where the usercan manually build a grouping block hierarchy and manually indicate theGroup Rule for each block in the hierarchy and then have the systempopulate the blocks with keywords, the user can insert seed phrasesdirectly into the grouping block and have each block populated based onthat seed. As shown in FIG. 9, a close up of grouping blocks and showsUI controls for entering seed keywords to have the system pulladditional keyword recommendations into the group (“page level”) 910 orlarger block level (including subgroups) (“group level”) 920;

Referring now to FIG. 10, a schematic diagram illustrating a userinterface element 1000 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 10, a close up of a group rowshowing UI controls for inserting a row item (keyword) 1020, as well asdeleting a row 1010. The tab with the + symbol 1020 is clicked by theuser which when clicked inserts a new row and provides a textbox 1110for the user in the new row where the user can enter the keyword.

Referring now to FIG. 13, a flowchart for a method 1300 for manipulatingand displaying data in accordance with a preferred exemplary embodimentof the present invention is depicted. As shown in FIG. 13, the user caninput keywords (step 1310) and update groupings (step 1320) and updatethe keyword hierarchy (step 1330) and then get or update the dataresults (step 1350) and change the view (step 1370). With the desiredview selected, the user can then assign single keywords or groups ofkeywords to URLs (step 1380) and, optionally, export the keywords (step1390). Additionally, the user can tag individual and groups of keywords(step 1340) and sort, filter, and otherwise process the data (step1360).

Referring now to FIG. 14, a schematic diagram illustrating a userinterface element 1400 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 14, a view of the main data gridthat includes the Page URL 1410 and Traffic column 1420 and PA (pageauthority) column 1430. Page authority (PA) is a numerical method ofmeasuring the strength of a webpage in the eyes of search engines. Thereare multiple methods for measuring this strength and the invention candeploy one or more of these methods. The invention uses its ability togroup keywords to the page level to allow users to easily view pagelevel data alongside all keywords in the group assigned to that page.This allows users to compare page level data with each other or withkeyword level data. The “blockiness” of the grouping blocks makes thisparticularly easy for the user to perceive. In particular, users cancompare the PA 1430 value of their page with the average PA value of saythe top 10 ranking sites in Google for each keyword or some othersuitable metric 1440. This allows the user at a glance to directlyrelate the strength of their site's page with the average strength ofthe top competitors for any keyword.

Referring now to FIG. 15, a schematic diagram illustrating a userinterface element 1500 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 15, a version of the main datagrid that includes aggregate data row 1510 at the bottom of each group'sdata columns. This aggregate data may be a sum, an average, or any otherdesired mathematical or numerical calculation. Each column can utilize adifferent calculation method as best suits the situation or user.Additionally, these summary values can be available at the block levelwhen a user clicks a block such as clicking a vertical leg and alsoavailable for the entire list of keywords.

Referring now to FIG. 16, a schematic diagram 1600 illustrating a userinterface element 1600 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 16, a view of a data grid 1600illustrating the column controls available at the group (page) level(1650) used in conjunction with a user interface element formanipulating and displaying data in accordance with a preferredexemplary embodiment of the present invention is depicted. Thecontroller depicted allows the user to sort and filter table data at apage-level (group level). Similar controls are also available at theblock level (if the user clicks the vertical leg for example) andoverall project level available by clicking in the table header area orvia another method such as context menu, main menu, or toolbar button;

Referring now to FIG. 17, a schematic diagram 1700 illustrating a userinterface element 1700 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 17, a view of the data gridillustrating the columns for on-page optimization score 1710 and item(keyword) source 1720.

Referring now to FIG. 38 and FIG. 39, a schematic diagram illustrating auser interface element 3800 and 3900 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 38, one horizontal only group isclick and dragged onto another horizontal group that is at the samelevel in the hierarchy (i.e. peers). As a result of the drag and dropoperation in FIG. 39, the two groups are combined into one group thatcontains two “subpage group” blocks (3910) and (3920). The subpagegroups keep the original relationship between the groups intact so theuser can easily see that the group is the result of two other groups.This process can be repeated as many times as the user desires tocombine as many groups as they would like. So there can be 3, 4, 5, etc.subpage groups within a group. The defining terms in the subpage groupskeep the logical integrity of the entire hierarchy so that a user caneasily predict the keywords in any group by following tracing down thehierarchy.

Referring now to FIG. 19 and FIG. 20, a schematic diagram illustrating auser interface element 1900 and 2000 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 19, illustrates user click anddrag of horizontal only grouping block to an L-block's horizontal leg.As a result of the drag and drop operation in FIG. 19, items (ex.keywords) are combined into one page-level group with subpage groupingblock (2040) inside the standard page-level grouping block (horizontalleg) as shown in FIG. 20. Defining terms in upper left corner combine(2010).

Parentheses in defining term indicate that the terms in parenthesesapply only within the page-level group and not the entire block-levelgroup (i.e. not the entire L-block). Summary metrics in the horizontalleg of the block (2030) display information relevant to the entirepage-level as they normally do (this includes the items in the subpageblocks). These metrics do not exclude the subpage blocks. Summary datain the upper-left corner (2020) applies to the entire inverted-L blockas usual. The subpage block symbol (2040) is a box within the standardgrouping block. It can optionally display its own summary data (eitherdirectly in the box or when a user requests the data by clicking an iconin the block, holding the cursor over it to reveal a popup boxcontaining the information, or using the context menu (not shown)). Thedisplay of subpage blocks are optional and can be toggled on and off bythe user using a controller elsewhere in the UI. In at least onepreferred embodiment of the present invention, when subpage blocks areturned off, the items at the page level can be sorted by data in themetrics columns such as search volume, cpc, etc.

Referring now to FIG. 21 and FIG. 22, a schematic diagram illustrating auser interface element 2100 and 2200 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 21, a user may click and dragthe horizontal leg of an inverted-L block to the horizontal leg ofanother inverted-L block (2100) that is a parent in the hierarchy. Theresult of this operation is to combine the horizontal legs into onehorizontal leg (i.e. page-level group) (2250) that then contains asubpage level grouping block (2230) to group the items added as shown inFIG. 22. This operation moves only the horizontal leg (i.e clicking anddragging a horizontal leg only moves the horizontal leg not the entireblock). As a result the vertical leg of the inverted-L block that hadits horizontal leg moved remains in place forming a vertical only block(2240). Essentially, the horizontal leg and vertical legs are separated.

The defining term in the upper left corner of the receiving page block(2210) places the defining term from the horizontal leg of the movedblock within parentheses. This indicates that the term is an exceptionto the rule for the page. Although the inverted-L block has been brokeninto two independent components a user can still easily see therelationship between the two previously connected components. The userwould look for the vertical leg in the hierarchy that contains the samedefining term (ex. “online”) within the hierarchy to mentally combinethem into one inverted-L block.

Referring now to FIG. 23 and FIG. 24, a schematic diagram illustrating auser interface element 2300 and 2400 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 23, a user may click and dragfrom horizontal leg of inverted-L block to horizontal leg of anotherinverted-L block (2310) of two peer level (i.e. at the same level in thehierarchy) inverted-L blocks (2320) with the resulting block arrangementas shown in FIG. 24. The result of this operation is to combine thehorizontal legs into one page-level group (2480) containing subpagelevel grouping blocks (2460) (2470). The vertical legs of both L-blocksare kept in place (2440) (2450). Horizontal lines (2430) separate thevertical legs from each other and from the parent page horizontal block(2420). These separation lines are to indicate that the vertical legsare their own (vertical) grouping blocks. Solid lines are used althoughalternatively dashed lines could be used to emphasize that the all threeblocks (resulting horizontal leg and both vertical only legs) have aclose relationship to each other and can be considered a single block.The defining term in the upper left corner of the receiving page block(2410) places each of the defining terms from the original horizontallegs within parentheses. This indicates that each is an exception to therule for the page (in this case there is no single dominate rule for thepage). The user visually can look at each subpage block and look for thevertical leg in the hierarchy that contains the same defining term atthe same level within the hierarchy to mentally combine them intoindividual inverted-L blocks.

Referring now to FIG. 25, a schematic diagram illustrating a userinterface element 2500 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. FIG. 25 is the same as FIG. 24 but annotationsindicate the meaning of the summary metrics in the blocks. For example,summary metrics 2520 relate only to the keywords within the scope ofthis segment of the vertical leg, likewise for 2530. In the horizontalleg summary metrics 2510 relate to the page level as usual. Optionally,the system can be configured to display the summary metrics for theentire “implied” L-block (i.e. the L-block that would exist if thevertical only legs that were left behind were connected to thehorizontal leg containing the combined horizontal legs. Optionally, thehorizontal lines at 2430 could be dashed to more strongly imply therelationship between the three blocks allowing the eye to easilyperceive the three blocks as one continuous block.

All grouping block drag and drop operations also have corollary inverseoperation. If two grouping blocks can be combined then they can beuncombined. The method for combining them can be drag and drop, contextmenu, or another suitable UI controller. This inverse operations is notlimited to what would be considered an “undo” operation undoing the lastoperation. These are true inverse operations that can be performed atany time. For example for the combination of two peer horizontal legs asseen in FIG. 23 and FIG. 24 the inverse operation can be performed byclicking one of the subpage blocks in FIG. 23 and dragging it outsidethe current page-level group and dropping it on the line just below thepage-level group or any other peer location of the page-level group. Theresult of this operation would be as seen in FIG. 23. This operationcould be performed by context menu or another suitable UI controller. Toclarify this in a more complex example consider the following.

Referring now to FIG. 26, a schematic diagram illustrating a userinterface element 2600 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 26, a user may click and dragone or more subpage blocks 2620, 2630 in a horizontal leg 2610 toequivalent vertical leg blocks (i.e. have same defining terms) 2640,2650 at the same level in the hierarchy as the horizontal leg containingthe subpage blocks. The result of each operation is to create aninverted-L block in each case as seen in the original diagram in FIG. 23that contained two L-blocks. In essence this operation reversed theprocess of breaking apart the vertical and horizontal legs of eachL-block. This example contained two separate inverse operations. Theuser has the freedom to perform a single inverse operation if theychoose or performing multiple inverse operations.

Referring now to FIG. 27 and FIG. 28, a schematic diagram illustrating auser interface element 2700, 2800 for manipulating and displaying datain accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 27, a user may drag and droporiginating from a vertical leg to a horizontal leg (2700) in this casethe horizontal leg of a parent group. The result of this operation is tomove all blocks that are within the scope of the vertical leg (includingits subgroups and horizontal leg if it is an L-block) into thehorizontal leg of the receiving block and display them as subpage block(2830) as shown in FIG. 28. Note that the original grouping blocks thatwere dragged into the other block are converted to subpage groupingblocks including their look and feel. The defining term in theupper-left corner of the resulting inverted-L block (2810) encapsulatesthe defining terms of the moved items within parentheses to indicatethat they are exceptions within the page-level group.

Additionally, subpage blocks can be drag and dropped. They can be dragand dropped within the existing subpage block group and obey thestandard drag and drop rules of regular grouping blocks. Also they canbe dragged outside of the current primary grouping block. In this casethey are converted to regular grouping blocks. This is the standardinverse operation for the blocks in question. Any subpage grouping blockno matter when it was moved can be move again either within or outsidethe current regular grouping block. When a subpage grouping block isdragged outside its containing regular group it is converted to aregular group and when it is dropped the location that it is droppedwill determine if any parent blocks will need to be created to maintainthe logical integrity of the hierarchy and they will be automaticallyinserted just as they would for cases where a regular block is moved toan arbitrary location in the hierarchy (i.e. appropriate parent blockswill be created whether they be vertical only, horizontal only orL-blocks). Subpage blocks can also be collapsed just like other blocktypes. The operations of moving subpage blocks, just like for otherblocks, is not confined to drag and drop only. Any appropriate UIcontroller can be used such as a menu, context menu or toolbarcontroller.

Optionally, a dashed horizontal line (2820) is used to emphasize thatthe sub-blocks are within the page level. This is not strictly necessarysince the horizontal line (2840) indicates the boundary between anyother remaining groups within the scope of the parent block. Thisoperation can be reversed by performing its inverse operation. Thiscould be accomplished by clicking the vertical leg of the L-block in thesubpage group and dragging it outside the horizontal leg it is currentlycontained within and placing it at the same level in the hierarchy whereit originally was. This and all inverse operations can be performed atanytime, not just immediately after the original operation.

Referring now to FIG. 29 and FIG. 30, a schematic diagram illustratinguser interface elements 2900 and 3000 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 29, a user may click and dragthe vertical leg of a grouping block such as an L-block and drop it ontothe vertical leg of another L-block. Then the block that is being movedis moved the user can see the block and all subblocks move along withthe cursor as is typical drag and drop behavior. This is the case withall drag and drop operations involving grouping blocks or item rows inthe invention. The result of dropping a vertical leg onto a vertical legoperation is that the groups and all subgroups combine as shown in FIG.30. The items in the horizontal leg of the moved block and the receivingblock combine into one horizontal leg (3020). The defining terms aretreated as equivalents throughout the resulting structure and thedefining terms are concatenated using the plus sign. Defining termsconcatenated with the plus sign act as exact equivalents within thescope of the defining term's block. The entire structure within thescope of the defining term is recalculated using this equivalency. Theresult of this equivalency is that groups with the same defining term atthe same level within the hierarchy combine together (3030) (3040).Regarding the combination of subgroups notice that in FIG. 29 “quote” isat the same depth in hierarchy for both car (2910) and motorcycle (2920)so they combine into one “quote” group 3030 seen in FIG. 30. Likewise,“online” (2930) (2940) is at same depth in the hierarchy under “quote”as seen in FIG. 29 so those combine into a single “online” group (3040)as seen in FIG. 30. The other subgroups remain and are included in theresult, placed in the hierarchy as to maintain the logical structure ofthe hierarchy.

The groupings are recalculated with the defining terms that were in theupper-left corners (2950) (2960) of each block treated as synonyms(car=auto=automobile are treated as equivalent to “motorcycle”). Thedefining term 3010 of the resulting block uses the addition sign (oranother appropriate symbol) but does not use any parentheses because theresult is a total combination so that the entire term (ex.“car=auto=automobile+motorcycle”) applies to the entire block. This isunlike other combinations previously shown where the combination is thatof a page containing a group that is an exception to the rule (indicatedby parentheses around the word that is the exception such as 2010 seenin FIG. 20).

If the blocks are both horizontal only blocks then the user can achievethe result of setting the defining terms as equivalencies by clickingthe left side of the horizontal only leg and dragging and dropping ontothe left side of the horizontal only leg of the receiving block. In thisway the left side of the horizontal only block acts as a vertical leg ofthe block allowing the equivalency to be set and the blocks combined inthe same way as if it have a visible vertical leg. Note that this isdifferent behavior than if the right side of the horizontal leg isdragged and dropped which would result in subpage blocks as previouslydescribed.

Referring now to FIG. 31, a schematic diagram illustrating a userinterface element 3100 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 31, a manual subpage block(3210) is used to identify items moved from one group into another. The“manual” subpage grouping block (3210) makes it clear which items weremanually moved into the page-level group. In this example the words“auto insurance” and “car insurance” were manually moved from the“car=auto=automobile” group. This manual designation makes it clear tothe user that these words are potentially exceptions to the hierarchyand violate the defining term definition for the group they arecontained in.

Optionally, the system can be configured so that if the moved termalready obeys the defining term of the block then that item does notneed to be grouped within a manual subpage block and can be displayed asusual in the regular grouping block. Or if the term naturally fitswithin the hierarchy of an existing subpage block of the regular blockthen the term can be placed in that location either automatically by thesystem or manually by the user. If the user manually enters in item into a group then the subpage grouping block rules just described formanually dragging the item into a group will be obeyed in this case too.Manually moved items can be moved again including in a way that isequivalent to an inverse operation.

Referring now to FIG. 32, a schematic diagram illustrating a userinterface element 3200 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 32, multiple horizontal legs(i.e. pages) can be combined into one page-level group. Subpage-levelblocks (3210) in the preferred implementation of the present inventionvisually look different (shown here shaded) than the standard page-levelgrouping blocks. The difference in appearance allows the user to clearlyidentify them as contained within a group. Note any suitable visualdifference will do. Shading is not the only method. Dashed lines (or anylines) (3220) separating subpage-level groups are optional. The user cantoggle this feature on and off. Special subpage group blocks for“uncategorized” (not pictured) items within the page can be created.These are similar to the “manual” subpage grouping blocks.

Referring now to FIG. 33, a schematic diagram illustrating a userinterface element 3300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 33, various levels of nesting toany arbitrary hierarchy level of subpage-level grouping blocks withinpage-level level group can be accomplished 3310.

Referring now to FIG. 49 and FIG. 50, a schematic diagram illustrating auser interface element 3300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 49, a grouping block can bemoved to a location outside of its parent block. When doing additionalblocks must be inserted to keep the logical structure of the hierarchy.For example, the block with defining term “cheap” is moved (by drag anddrop or another method provided by the system) to a location between theblocks “quote” and “online.”

To accomplish this the user could drag and drop the block on the linebetween the indicated blocks (the system highlights the line between theblocks when the cursor dragging the block is over the line to indicatethat the block can be dropped at that location). The result of theoperation is shown in FIG. 50 two blocks 5010, 5020 are added at thedrop location instead of just the one that was dragged to the location.The reason for this is that to maintain the logic of the hierarchy anadditional block was needed. The reason for this is that the itemsgrouped in the block “cheap” actually contain both “cheap” and “online”since “cheap” is a subgroup of “online”. When the “cheap” group is movedoutside of the “online” group the resulting hierarchy must still reflectthe fact that the items in the group have both of these qualities. Soboth “cheap” and “online” blocks are needed. One is inserted as avertical only block 5010 and the other as a horizontal only leg 5020.

Essentially, the move of the “cheap” group outside of the “online” groupis requesting that the order of the hierarchy be changed. The request isto place “cheap” higher in the hierarchy. This means that “online” willthus be lower in the hierarchy than it was originally (in this area ofthe hierarchy only). Thus, “cheap” went from being in this area of thehierarchy from being a child in the relationship “online>cheap” to aparent in the new relationship “cheap>online”. This is why the block5020 must be created. Also note that one of the defining terms is nowrepeated in two block as result of this operation 5020 and 5030.

Referring now to FIG. 51 and FIG. 52, a schematic diagram illustrating auser interface element 3300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 51, the hierarchical order ofthe blocks can be changed by dragging the corner of the block to aposition higher in the hierarchy. In this case only the “L” shape movesand not its subblocks. The result of this type of operation is to changethe calculation of the structure of all blocks within the scope of themoved block since it is higher in the hierarchy the hierarchy of allblocks below it must be recalculated. We see that the grouping block canbe moved to a location outside of its parent block in this example anL-block is moved to a position in the hierarchy one level higher. Inthis case the hierarchical arrangement between blocks with definingterms “quote” and “online” change from “quote>online” to “online>quote.”The blocks reconfigure in an analogous way following the same principlesto the way seen in FIG. 49. and FIG. 50.

As seen above blocks can be moved to arbitrary locations within thehierarchy, thus changing the hierarchical structure, and a suitablerestructuring of the blocks can performed to accommodate the move yetmaintain the logical integrity of the hierarchy.

Referring now to FIG. 53 and FIG. 54, a schematic diagram illustrating auser interface element 3300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 53, a grouping block can bemoved to a different location within its subgroup. This operation doesnot change the hierarchical relationship between the blocks but merelyreorders them visually as seen in FIG. 54.

Referring now to FIG. 55 and FIG. 56, a schematic diagram illustrating auser interface element 3300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 55, move an L-block to anotherlocation in the hierarchy that is not a change in the hierarchicalstructure but simply a move to a different location among peer groups.To move an L-block and all of its subblocks the user clicks the verticalleg of the block to be moved, that will select the L-block, all of itssubblocks and all rows including the items and data within the scope ofthe block. The user drags to a location between two blocks, the linebetween the blocks is highlighted to indicate that the user can drop inthat location and where the result of the operation will reside. Theresult of the drag and drop operation is seen in FIG. 56.

The user can also accomplish such a move by using cut and paste. Theuser can click the vertical leg to select the entire block and allwithin its scope, select cut from the context menu or another availablecontrol method place the cursor in the location where the user wants topaste the blocks, click to finalize the location for the paste, andselect from the context menu or using another available methods such asa keyboard shortcut paste the copied blocks. The user can also copy ablock and paste it.

Cut and paste can perform any operation that drag and drop can perform.For example, the user can copy a block and all within its scope, clickon another block and paste. The result of the paste will be the same asif the user dragged and dropped. There are additional conveniencemethods for a user to drop an item such as allowing the user to pastethe item above, below or within an item. So the user could cut a block,click on another block and use a controller such as a context menu to“paste here”, “paste above”, “paste below”, etc.

Drag and Drop operations involve multiple states, conditions andresults. Additionally each type of drag and drop operation requires theuser to click in a particular location of a block and drag to aparticular location within each grouping block or between groupingblocks to achieve different combination or move results. Once thefundamental principle that the result of all drag and drop operations orother similarly operations whether performed automatically by thesystem, by the user using drag and drop or other UI controllers that theresult of the operation must maintain the logical integrity of thehierarchy it becomes clear which additional display arrangements arelogical and a practitioner expanding the system will be able to defineadditional function and arrangements of the blocks to stay consistentwith the principles outlined in this document. What follows is adescription of various states, conditions and results for many of thedrag and drop operations available to the user. Other operations notlisted here or elsewhere in this document that are consistent with theprinciples set forth will be apparent to one skilled in the art.

If in FIG. 55 the user preferred to move just the horizontal leg in the“classic” block they would click the horizontal leg of the block (notthe vertical leg as shown in the diagram) and dragged it to theindicated location. In that case there would still remain a verticalonly leg to the left of “corvette” block to maintain the logicalintegrity of the hierarchy.

What portion of a block is clicked affects the results of the drop justas the location of the drop does. For example clicking a horizontal onlyleg on the left side can allow the block to behave as if it had avertical leg.

Referring now to FIG. 62, a schematic representation illustrating a userinterface element 6200 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. FIG. 62 illustrates the click and drop zones 6210and 6220 and 6230 on the “L-block” grouping block type used for drag anddrop operations, to click to display contextual menus or perform otheroperations on the block.

Referring now to FIG. 63, is a schematic representation illustrating auser interface element 6300 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. FIG. 63 illustrates the click and drop zones 6310and 6320 on the “horizontal only” grouping block type used for drag anddrop operations, to click to display contextual menus or perform otheroperations on the block;

Referring now to FIG. 64, is a schematic representation illustrating auser interface element 6400 for manipulating and displaying data inaccordance with a preferred exemplary embodiment of the presentinvention is depicted. FIG. 64 illustrates the click and drop zones 6410and 6420 on the “vertical only” grouping block type used for drag anddrop operations, to click to display contextual menus or perform otheroperations on the block;

Turning now to FIGS. 62, 63 and 64. There are three types of groupingblocks in the present invention including horizontal only (6300),vertical only (6400) and L-block (6200). Note that other block shapesare possible. For example block shapes for managing processes such asworkflows may require different shapes than are required for keywordresearch. The three grouping block types shown in FIG. 62, FIG. 63, FIG.64 have collectively three click zones and two drop zones. The clickzones are the horizontal leg, the vertical leg and the corner. The dropzones are the vertical leg and the horizontal leg. In FIG. 62, FIG. 63,FIG. 64 all numbered areas are click zones (6210), (6220), (6230),(6310), (6320), (6410), (6420). The drop zones within blocks are all butthe corner of the L-block (6210).

Optionally this area could be configured as a drop zone if there was aneed. In addition to drop zones within blocks there are drop zonesbetween blocks that are used for moving block to different locationswithin the hierarchy or changing the hierarchical order of groups. Theresults of clicking in each zone and dropping to other zones iselsewhere described in this document. Note that when a click and draggedblock is hovering over other blocks before being dropped the potentiallyreceiving blocks are highlighted if it is acceptable to drop the blockin that location. In general clicking the vertical leg (6230) of anL-block, the “vertical leg” portion (6310) of a horizontal only leg orany part of the vertical only leg (6410)(6420) will allow the user toselect the entire block level of the grouping block.

From a click and drag perspective dragging the vertical leg will movethe entire block and all of its associated sub-blocks and data. Clickinga horizontal leg (6220)(6320) will only select the row defined by thehorizontal leg that may also include the left side of the block(6210)(6310). From a click and drag perspective only the horizontal legwill be moved if it is clicked and dragged which includes (6210)(6310).In the case of horizontal legs being dragged a click on either 6220 or6320 that is dragged to either 6220 or 6320 will result in a subpagegroup like that seen in FIG. 20 or FIG. 39 But a click on the left sideof the horizontal leg 6210 or 6310 that is dragged to 6210 or 6310 willresult in a combination as seen then the left side of the horizontalonly block see in FIG. 65 was dropped onto the left side of anotherhorizontal only block with result in FIG. 66.

Referring now to FIG. 21 and FIG. 22, additional features of the UI canbe further explained.

Block Relationship: Direct subgroup L-block and parent group L-block.User action: Clicks and drags horizontal leg of subgroup to horizontalleg of parent group. (Horizontal leg to horizontal leg.)Result: Subpage block created in horizontal leg of receiving block.Vertical leg of moved block remains in its original location. Dashedline separating keyword rows at subpage block boundary optional. (toggleon off)Number of subpage blocks: 1 (only the moved keywords are in a subpageblock).Defining term formula: Parent defining terms concatenated with the plussign with the direct subgroup's terms in parentheses. Formula: “parentterms+(direct subgroup's terms)”.UI visualization: Highlight the horizontal leg and the items and allassociated data in the row and animate the highlighted horizontal leg,items and data being dragged.

2) Regarding FIG. 23 and FIG. 24.

Block Relationship: Two peer blocks containing horizontal legs (i.e.Peer meaning same level in the hierarchy.)User action: Drag horizontal leg onto horizontal leg.Result: Two horizontal legs combine into one horizontal leg. If one ormore of the blocks is an L-block then leave the vertical leg(s) inplace. Solid lines between vertical legs just as between any regularblocks. Optional, dashed lines between vertical legs instead. Optional,dashed lines between items (eg. Keywords) at border between subpageblock items.Number of subpage blocks: 2 (two subpage group blocks within resultinghorizontal leg group block)Defining term formula: (One peer's defining term)+(Other peer's definingterm)UI visualization: Animate highlight horizontal leg and all associateditems and data in the row and it being dragged. Optional, dashed linesbetween vertical legs instead. Optional, dashed lines between items (eg.Keywords) at border between subpage block items.

3) Regarding FIG. 27 and FIG. 28.

Block Relationship: Direct subgroup L-block and parent L-block (orVertical only leg not pictured here).User action: Clicks and drags vertical leg of subgroup to horizontal legof parent group.Result: Entire grouping block including subgroups of moved group placedinside horizontal leg of parent group. Optional, dashed line betweenkeywords (not shown in diagrams)Number of subpage blocks: 1 group with all of its subgroupsDefining term formula: parent term+(formula representing the structureof the moved group)UI visualization: Animate highlight and move of the entire movedgrouping block (vertical and horizontal leg and all subgroups) beingdragged.Misc: Optionally display horizontal dashed line in vertical leg ofblocks to indicate where the page group ends.

4) Regarding FIG. 29 and FIG. 30

Example: Block Relationship: Two peer blocksUser action: User clicks and drags the vertical leg of one L block tothe vertical leg of another L block.Result: All groupings within the scope of the two original L groupsrecalculated as one group with the defining terms treated as synonyms.Number of subpage blocks: 0 (Optionally, display subpage blocks)Defining term formula: Peer's term+Other peer's term (no parentheses).UI visualization: Animate the highlight of entire grouping block(vertical and horizontal leg and all subgroups) and it being dragged.

5) Regarding FIG. 31:

User action: Manual keyword move.Result: Create subpage block called “<manual>” to contain all manuallymoved keywords for that page.

6) Regarding FIG. 32:

Illustrating “Uncategorized” subpage block. This is a user defined blockthat can contain any keywords the user desires or keywords the algorithmfinds relevant but not clearly part of a definable group.

Based on the above detailed examples the scenarios not explicitly listedhere can be inferred by one skilled in software development and/or userinterface design to be consistent with the principles implicit in theabove examples. For example, the above does not mention the case where ahorizontal only leg is combined with another horizontal only leg. Butbased on the examples above the expected results should be clear.

Notes:

Use of parentheses in defining term means “exception” to the rule.If subpage blocks are toggled off then rows in groups can be sorted andfiltered by metric columns.Subpage blocks do not need to display the summary metrics.All processes are reversible at any time by clicking and dragging torecombine the blocks. Or in the case where the user dragged corners thenthe user can right click the defining term to select an option from acontextual menu to create a new block based on the defining term clickedto break apart the previously combined blocks. Alternatively the usercan click one of the defining terms and drag it out of the block tocreate new block using that defining term.

Referring now to FIG. 34, a schematic diagram illustrating a userinterface element for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention. As shownin FIG. 34, examples of grab handles for Inverted-L block 3410, verticalleg block 3420, and horizontal leg block 3430 are depicted. Grab handlesare optionally provided to offer a visual cue to the user that theblocks can be dragged and where the cursor must be placed. When thecursor is positioned over the block, rectangular “grabber” areas appear.This is an optional feature.

Referring now to FIG. 35 and FIG. 36, a schematic diagram illustratinguser interface elements 3500 and 3600 for manipulating and displayingdata in accordance with a preferred exemplary embodiment of the presentinvention is depicted. As shown in FIG. 35, a user may click and dragthe vertical leg or corner of a grouping block (not necessarily anL-block) onto the vertical leg or corner of another block (notnecessarily an L-block). The result of this type of drag and dropoperation is that the groups and all subgroups combine as shown in FIG.36. In this case, the blocks both have the same defining term “car.”Also the blocks do not have to have a peer to peer level relationship ora parent, grandparent, or other hereditary relationship. They can be anytwo blocks. If they have the same defining term then they can becombined. Additionally, if the blocks do not have the same defining termthe operation will result in setting the two defining terms asequivalent terms in the defining term and combine the blocks in ananalogous way.

Referring now to FIG. 16 illustrating user interface 1600. At the top ofeach group above the displayed metric data (such as search volume,ranking, etc.) the user has the option of displaying a horizontal bar1610 that provides functionality to sort and/or filter the group items1650 by any column or combination of columns. This function is madeavailable to the user in a user friendly was such as if the cursorhovers above the relevant data in the grid, hovers near the linedividing two groups or by another method such as context menu or othermethod. A user interface element such as up or down arrow 1620 isavailable that when clicked sorts the keywords by the relevant metricfrom high to low or vise-versa. Additionally, users will have theability to enter filter criteria 1630, 1640 and click to view filtertypes available 1660 to filter the list by criteria the user enters(such as to show only keywords in a group that have search volumegreater than 150. Another filter example: a user could enter a word intothe filter criteria to only view items (eg. Keywords) in that groupcontaining that word. The order that the filter and sort criteria areapplied across the columns can be defined by the user using anappropriate controller. This same controller is available at the blocklevel and controls the sorting of either the subblocks based on summarymetrics for the blocks or ignores the subblock grouping and sorts andfilters all the items within the block by the selected metrics. In thiscase the subgroup blocks are temporarily hidden to allow for thesorting. Additionally these same controls are available at the projector view level. The controller is located at the top of the entire tablein either of these cases. Similarly, the blocks are hidden toaccommodate the sorting and filtering. Also, if the system is configuredto have loaded only a subset of all available data then the user has theoption to sort/filter the currently available data or all data in theproject.

The UI will optionally allow the user to view the data grid without anygroupings or grouping blocks. In this case the keywords will not begrouped allowing the user to sort and filter the list as a whole.

To accommodate large data sets of items (i.e. many keywords) the systemcan be configured to load a subset of the data. The configuration iseither system defined or user defined or a combination of the two. Whenthis subset is utilized for the purpose of not over burdening thebrowser hosting the table the system can display grouping blocks withoutloading the associated items. One example is where every first levelgroup is displayed including its defining term but no items orsubgroups. This allows the system to load quickly and give the user theoption to view the items in that group using an appropriate userinterface controller.

Referring now to FIG. 37, a schematic diagram illustrating a userinterface element for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention. As shownin FIG. 37, a user interface controller, displayed here as a dropdownmenu, allows the user to select a “view” which is based on user taggingof groups. The user selects an item from the menu and only the groupsand keywords with the selected color tag are displayed to the user.

Referring now to FIG. 57, a schematic diagram illustrating a userinterface element for manipulating and displaying data in accordancewith a preferred exemplary embodiment of the present invention isdepicted. As shown in FIG. 57, a user may chose to work in a perfectlylinear fashion when performing keyword research and the workflow wouldlook like that in FIG. 57. The user would first build a list (step S710)from all available keyword data sources (e.g., imported, manuallyentered, etc.) and the system could automatically group them and buildthe hierarchy or the user could do it manually. The user would enter allsetting available in the left margin tools such as equivalent terms,required terms, excluded terms (step S720). Then the user can acquireall relevant data such as search volume, cpc, traffic, competitionscores etc., then analyze the data perhaps using sorting and filteringfunctions, select the groups and keywords they want to target, perhapsdeleting some keywords or groups, assign the groups/keywords to urls onthe site and their keyword research would be complete. They could thenoptionally export the entire project or just one of the views of theproject.

Although FIG. 57 presents one idealized approach, those skilled in theart will recognize that real world keyword research is not typically alinear process. And currently available keyword research tools as wellas the most commonly used method of developing keyword strategies usingExcel inflict a high cost on users when they deviate from a linearpattern. It is often difficult, time consuming and painful to addkeywords at any point in time, pull data for subsets of keywords thenlater attempt to get data for other keywords in the project, etc.

Referring now to FIG. 58, a keyword search and configuration methodologyin accordance with a preferred embodiment of the present invention isdepicted. As shown in FIG. 58, the limitations associated with thestrictly linear approach to keyword search and configuration may bealleviated these problems the present invention allows the user to workin virtually any order they choose once at least some keywords are inthe system. The user can add keywords at any time, get associated data,select keywords/groups, delete keywords/groups, assign keywords/groupsto urls, rearrange the hierarchy, add more groups, change excludedterms, required terms, add or delete seed keywords from the seed box,etc.

Just as with word processors such as Microsoft Word and photo editingand bitmap graphics editors like Adobe® Photoshop® which allow a user towork in a single workspace to develop complex documents in any order ofoperations the user chooses the present invention allows users toperform keyword research in an analogously free form way.

The unique nature of the grouping block disclosed in conjunction withthe various preferred embodiments of the present invention is what makesthis approach possible. By allowing the display to list all keyword in asingle view with the associated grouping and hierarchy, including thefunctions on the grouping blocks, the user is able to iteratively andrepeatedly interact, analyze and make selection decisions in a singleworkspace. This allows the user to “tweak” the keywords, the groupingand hierarchy of the keywords, etc. to achieve the desired results inthe most efficient and effective means possible.

The Algorithm

In at least one preferred embodiment of the present invention, thedefault grouping block algorithm treats all keywords as “unique” andwill, accordingly, display each keyword in mutually exclusive keywordgroupings.

In the most preferred embodiments of the present invention, the groupingalgorithm will count the occurrences of words in each keyword phrase andgroup the keywords based on the number of occurrences. However,additional algorithms may also be employed and used to enhance theoverall performance of the invention.

Sample of Algorithm:

1) Keyword list before grouping:

-   -   Motorcycle insurance quotes    -   Car insurance    -   Motorcycle insurance quote    -   Car insurance quotes    -   Car insurance prices    -   Motorcycle insurance online    -   Car insurance price    -   Car insurances    -   Motorcycle insurance    -   Motorcycle insurances    -   Car insurance quote

2) Count frequency of each individual word

-   -   Insurance(s): 11    -   Car(s): 6    -   Motorcycle: 5    -   Quote(s): 4    -   Price(s): 2    -   Online: 1    -   3) Create a variation of each keyword phrase where each word        from the phrase is ordered left to right by the frequency of its        appearance in the entire list (call this the Generic version of        the keyword); then group the list containing the original        versions of the keywords and the Generic versions of the        keywords and by the Generic versions.

For example, in the phrase “motorcycle insurance quotes” the word“insurance” is most frequent in the entire list with a frequency of 11,the word “motorcycle” is the second most frequent with a frequency of 5,the word “quotes” is least frequent with a frequency of 4. So arrangingthe individual words in this keyword from most frequent to leastfrequent gives “insurance, motorcycle, quote”. Additionally ignoredifference between plural and singular words (for example “car” and“cars” are equivalent). Execute this process for each keyword in thelist. Here is the result for the entire list:

Words ordered by frequency from most to least frequent (ignoringplural/singular) Keyword to form Generic Keyword Motorcycle insurancequotes Insurance, motorcycle, quote Car insurance Insurance, carMotorcycle insurance quote Insurance, motorcycle, quote Car insurancequotes Insurance, car, quote Car insurance prices Insurance, car, priceMotorcycle insurance online Insurance, motorcycle, online Car insuranceprice Insurance, car, price Car insurances Insurance, car Motorcycleinsurance Insurance, motorcycle Motorcycle insurances Insurance,motorcycle Car insurance quote Insurance, car, quote

4) Group rows based on identical values in the Generic keyword column(optionally arrange alphabetically)

Keyword phrase Generic Keyword phrase Car insurance Insurance, car Carinsurances Insurance, car Car insurance quote Insurance, car, quote Carinsurance quotes Insurance, car, quote Car insurance price Insurance,car, price Car insurance prices Insurance, car, price Motorcycleinsurance Insurance, motorcycle Motorcycle insurances Insurance,motorcycle Motorcycle insurance quote Insurance, motorcycle, quoteMotorcycle insurance quotes Insurance, motorcycle, quote Motorcycleinsurance online Insurance, motorcycle, online

In the most preferred embodiments of the present invention, a programinglanguage or scripting language is provided so that users can devisetheir own grouping algorithms. In one preferred embodiment of thepresent language, the scripting language is called Studio Script™ andalso provides for customization of various aspects of the systemincluding controlling how many keywords are returned via API for eachspecified data source.

As will be appreciated by one skilled in the art, aspects of thecomputer-based system disclosed herein may be embodied as a system,method or computer program product. Accordingly, aspects of thecomputer-based system may take the form of an entirely hardwareembodiment, an entirely software embodiment (including firmware,resident software, micro-code, etc.) or an embodiment combining softwareand hardware aspects that may all generally be referred to herein as a“circuit,” “module” or “system.” Furthermore, aspects of thecomputer-based system for may take the form of a computer programproduct embodied in one or more computer readable medium(s) havingcomputer readable program code embodied thereon.

Additionally, those skilled in the art will recognize that paid searchcampaigns are often created and monitored by individuals using variouskeyword search tools and, accordingly, the present invention is alsouseful for paid search campaigns and not just organic search campaigns.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium (transitory or non-transitory) or a fixed computer readablestorage medium. A computer readable storage medium may be, for example,but not limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. More specific examples (a non-exhaustivelist) of the computer readable storage medium would include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, a portable compact disc read-onlymemory (CD-ROM), an optical storage device, a magnetic storage device,or any suitable combination of the foregoing. In the context of thisdocument, a computer readable storage medium may be any tangible mediumthat can contain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire-line, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thecomputer-based system may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as C#, Objective C, Java, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

From the foregoing description, it should be appreciated thatcomputer-based system 100 and method for data manipulation and displaydisclosed herein presents significant benefits that would be apparent toone skilled in the art. Furthermore, while multiple embodiments havebeen presented in the foregoing description, it should be appreciatedthat a vast number of variations in the embodiments exist. Lastly, itshould be appreciated that these embodiments are preferred exemplaryembodiments only and are not intended to limit the scope, applicability,or configuration of the invention in any way. Rather, the foregoingdetailed description provides those skilled in the art with a convenientroad map for implementing a preferred exemplary embodiment of theinvention, it being understood that various changes may be made in thefunction and arrangement of elements described in the exemplarypreferred embodiment without departing from the spirit and scope of theinvention as set forth in the appended claims.

1. A system comprising: a microprocessor; a memory coupled to themicroprocessor; and a user interface for displaying and manipulatingkeywords, the user interface providing a general way to display andinteract with groups and hierarchies using at least a first inverted “L”shaped block, wherein the at least a first inverted “L” shaped blockrepresents a single keyword concept.
 2. A method comprising the stepsof: manipulating keywords via a user interface; and displaying keywordsvia a user interface, the user interface providing a general way todisplay and interact with groups and hierarchies using blocks, includingan inverted “L” shaped block, wherein at least a first inverted “L”shaped block represents a single keyword concept.
 3. The system of claim1 further comprising at least a second “L” shaped block, the at least asecond “L” shaped block represents a single keyword concept and whereinthe at least a second “L” shaped block is contiguous on at least twosides to the at least a first inverted “L” shaped block.
 4. The systemof claim 1 further comprising at least one secondary block wherein theat least a first inverted “L” shaped block and the at least onesecondary block share a hereditary relationship.
 5. The system of claim1 wherein the at least one “L” shaped block comprises a horizontal legand a vertical leg with the horizontal leg spanning at least one relatedkeyword concept and with the vertical leg spanning the at least onerelated keyword concept.
 6. The system of claim 1 wherein the userinterface displays keyword information regarding volume, cost, rank andother variables related to the single keyword concept represented by theat least one “L” shaped block.
 7. The system of claim 1 furthercomprising at least one secondary block wherein the at least a firstinverted “L” shaped block and the secondary blocks share a hereditaryrelationship and the at least one secondary block contain an additionalkeyword that is related to the single keyword concept represented by theat least one “L” shaped block.
 8. The system of claim 1 wherein the userinterface displays a hierarchical relationship that is more than asingle horizontal row of related concepts and a single column ofvertical concepts are displayed.
 9. The system of claim 1 wherein theuser interface displays a plurality of hierarchical relationships in avertical representation and in a horizontal representation related tothe single keyword concept represented by the first inverted “L” shapedblock and wherein the plurality of hierarchical relationships aredynamically reconfigured by dragging and dropping at least one keywordblock.
 10. The system of claim 1 further comprising at least a second“L” shaped block, wherein the at least a second “L” shaped blockrepresents an additional keyword concept and wherein the at least asecond “L” shaped block and the at least a first inverted “L” shapedblock are separated by at least one secondary block wherein the at leastone secondary block represents a secondary single keyword concept thatis related to the single keyword concept and to the additional keywordconcept.
 11. The system of claim 1 further comprising a grouping blockwith a shape other than an inverted “L” shaped block.
 12. The system ofclaim 1 wherein the single keyword concept represents a plurality ofassociated metrics including search volume, cost per click, andcompetition level.
 13. The system of claim 1 further comprising aplurality of grouping blocks wherein at least one of the plurality ofgrouping blocks is identified by a user applied tag.
 14. The system ofclaim 1 further comprising a plurality of grouping blocks wherein atleast two of the plurality of grouping blocks are dragged and dropped tocombine a plurality of keyword concepts associated with the at least twoof the plurality of grouping blocks.
 15. The system of claim 1 whereinthe user interface displays the at least a first “L” shaped block andfurther displays: at least a second “L” shaped block, the at least asecond “L” shaped block represents a second keyword concept and whereinthe at least a second “L” shaped block is contiguous on at least twosides to the at least a first inverted “L” shaped block; at least onesecondary block wherein the at least a first inverted “L” shaped blockand the at least one secondary block share a hereditary relationship andthe at least one secondary block contain an additional keyword that isrelated to the single keyword concept represented by the at least one“L” shaped block; and keyword information regarding volume, cost, rankand other variables related to the single keyword concept represented bythe at least one “L” shaped block and the at least a second “L” shapedblock and the at least one secondary block.
 16. The system of claim 15wherein the at least one secondary block comprises a plurality ofsecondary blocks and wherein each of the plurality of secondary blocksrepresents a secondary keyword concept that is related to the singlekeyword concept represented by the at least one “L” shaped block and thesecond keyword concept represented by the at least one a second “L”shaped block.
 17. The system of claim 16 wherein the single keywordconcept, the second keyword concept, and the secondary keyword conceptare each derived from a list of related keyword phrases imported from adatabase via an application programming interface.
 18. The method ofclaim 2 wherein the groups and hierarchies represent at least onehierarchical relationship based on semantics and word definitions. 19.The method of claim 2 wherein the groups and hierarchies represent atleast one hierarchical relationship based on categories.
 20. The methodof claim 2 comprising a plurality of grouping blocks wherein each of theplurality of grouping blocks displays summary information about thekeywords contained within each of the plurality of grouping blocks.